IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

taille d'un dossier


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut taille d'un dossier
    Bonjour,

    j'ai créé une petite fonction qui me permet d'avoir la taille d'un dossier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    	// liste la taille d'un fichier/dossier
    	long fileDirectorySize(File file){
    		//System.out.print("\r\n1");
    		
    		if (file == null){
    			//System.err.println("Erreur taille fichier");
    			return 0;			
    		}
    		
    		
    		if (file.isFile()){ // traitement fichier
    			//System.out.print("2");
    			return file.length();
    
    		} else { // traitement dossier
    			//System.out.print("3");
    			
    			long sizeTmp = 0;
    			
    			for (File file2 : file.listFiles()){
    				//System.out.print("4");
    				
    				if (file2.isFile()){ // traitement fichier
    					//System.out.print("a");
    					sizeTmp += file2.length();	
    					
    				} else { // traitement dossier
    					//System.out.print("b");
    					//System.out.print("\"" + file2.getAbsolutePath() + "\"");
    					
    					try {
    						sizeTmp += fileDirectorySize(file2);
    					} catch (NullPointerException e){
    						System.err.println(e.toString() + ": " + file2.getAbsolutePath());						
    					}
    				}
    			}
    			//System.out.print("5");
    			
    			return sizeTmp;
    		}
    	}
    Le problème est que s'il y a des dossiers qui sont protégés en accès (sous windows), il est impossible de récupérer la taille des dossiers concernés
    => le catch (voir code mis en rouge) me permet d'éviter que le programme se bloque mais je n'ai alors pas la bonne taille qui s'affiche...

    Comment faire ?

    merci d'avance,

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    La bonne taille ? Ca veut dire quoi ? tu veux la taille totale en ignorant le dossier protégé, ou alors tu veux quand même la taille du dossier protégé ?
    C'est un problème système ou algorithmique ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    La bonne taille ? Ca veut dire quoi ? tu veux la taille totale en ignorant le dossier protégé, ou alors tu veux quand même la taille du dossier protégé ?
    => je veux la taille de tous les dossiers/fichiers

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    => je veux la taille de tous les dossiers/fichiers
    euh... ouais.... pas mieux... toujours pas répondu clairement aux questions posées
    On va tenter d'avancer un peu :
    • tu veux la taille du dossier protégé : impossible par ton seul programme,
    • tu ignores le dossier protégé mais tu veux quand même la taille du dossier parent en ignorant la taille du dossier protégé : donne ton code, c'est un simple problème algorithmique.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut
    par exemple si j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    D:\
       |
       |--> fifi
       |
       |--> riri
       |
       |--> toto
             |
             |--> titi (protégé) : 10Mo
             |                |
             |                |--> ???
             |
             |--> tutu   
             |      |
             |      |--> zozo.txt (1Mo)
             |      |
             |      |--> zuzu.txt (1Mo)
             |
             |--> zaza.txt (1Mo)

    si je tape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fileDirectorySize(new File("D:\toto"));
    => je veux comme résultat : 13Mo
    => je veux simplement la taille de mon répertoire "toto" en premnant en compte "titi"
    => si je lance ma fonction actuelle, elle me retourne 3Mo (elle ignore "titi")

    C'est bon tu as compris ?

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    C'est bon tu as compris ?
    Oui
    Et tu remarqueras que j'ai déjà répondu au problème
    Enfin, ce n'est pas un problème mais une fonctionnalité : dossier protégé = impossible d'y accéder.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Donc notamment, impossible d'accéder (de calculer, ou faire calculer, en fait,) à sa taille.

    (Mettons les points sur les 'i')
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Connaitre la taille d'un dossier
    Par mcdonald dans le forum Général Python
    Réponses: 2
    Dernier message: 01/06/2006, 21h10
  2. [BATCH]: Comparer la taille de 2 dossiers
    Par ADONET dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 19/03/2006, 15h57
  3. recupérer la taille d'un dossier...
    Par Empty_body dans le forum Langage
    Réponses: 1
    Dernier message: 03/02/2006, 16h02
  4. [batch]taille d'un dossier
    Par Crazy_warthog dans le forum Windows
    Réponses: 5
    Dernier message: 25/08/2005, 18h13
  5. Récupérer la taille d'un dossier...
    Par Life Hunter dans le forum Langage
    Réponses: 5
    Dernier message: 11/08/2005, 13h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo