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

Entrée/Sortie Java Discussion :

Parcourir les dossiers/fichiers


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Parcourir les dossiers/fichiers
    Bonjour à tous !
    Je souhaite parcourir les dossiers/fichiers de mon ordinateur.
    Cependant j'ai un problème lorsque le dossier ne peut pas être lu/écrit (quand on a la jolie petite fenètre (sous Windows) qui dit 'Accès refusé')

    Voilà le code que j'utilise :
    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
    public class ListDossier {
    	private String s_racine;
    	public ListDossier (String s_vracine) {
    		s_racine = s_vracine;
    	}
     
    	public void v_outFileName(String s_dir) {
    		if (s_dir.equals("")) {
    			s_dir = s_racine;
    		}
     
    		File F_fichiers = new File(s_dir);
     
    		if (F_fichiers.isDirectory()) {
    			File[] s_fname = F_fichiers.listFiles();
    			System.out.println(s_dir + "(" + s_fname.length + " fichiers).");
    			for (int  i = 0; i < s_fname.length; i++) {
    				if (s_fname[i].canWrite() && s_fname[i].exists()) {
    					v_outFileName(s_fname[i].toString());
    				}
    			}
    		}
    	}
    }
    Voilà ce que Eclipse renvoie :
    C: (44 fichiers).
    Exception in thread "main" java.lang.NullPointerException
    at ListDossier.v_outFileName(ListDossier.java:19)
    at ListDossier.v_outFileName(ListDossier.java:22)
    at MyMain.main(MyMain.java:8)
    Sachant que le premier dossier est '%SystemData%' dont je n'ai pas accès.
    D'après ce que j'ai pu lire, avec canWrite + canExist on peut prouver que c'est un dossier à accès réduit, mais ça ne veut pas...

    [J'ai testé en mettant Program Files et ça fonctionne jusqu'au premier dossier de la même sorte...]

    Merci à tous de m'avoir lu, en espérant que le sujet n'a pas déjà été abordé

    Bonne journée !

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Je pense que tu devrais utiliser canRead() plutôt.

    Accessoirement, tu peux mettre la méthode dans un bloc try catch pour protéger d'une quelconque erreur

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 168
    Points : 110
    Points
    110
    Par défaut
    mets ta méthode dans un bloc try catch pour gérer ton exception si jamais tu ne peux pas lire un fichier

    en java 5 , c'est interdit de faire :

    if (s_dir.equals(""))

    c'est plutôt if ("".equals(s_dir)), ça t'évite nullpointerexception
    Demain n'est plus à attendre mais à inventer !!!

  4. #4
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Citation Envoyé par turbo_chess Voir le message
    en java 5 , c'est interdit de faire :

    if (s_dir.equals(""))

    c'est plutôt if ("".equals(s_dir)), ça t'évite nullpointerexception
    Cela n'est pas interdit, et ça n'a aucun rapport avec Java 5.

    L'exception se produirait avec n'importe quelle version de java.
    C'est une recommandation pour rendre le code plus robuste, ce n'est pas une interdiction.

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 168
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par CheryBen Voir le message
    Cela n'est pas interdit, et ça n'a aucun rapport avec Java 5.

    L'exception se produirait avec n'importe quelle version de java.
    C'est une recommandation pour rendre le code plus robuste, ce n'est pas une interdiction.
    merci, je retire ce que j'ai dis.
    Demain n'est plus à attendre mais à inventer !!!

Discussions similaires

  1. Un modèle pour afficher les dossiers/fichiers
    Par rakba dans le forum Composants
    Réponses: 0
    Dernier message: 18/12/2011, 01h02
  2. Bouton pour parcourir les dossiers
    Par lordatef dans le forum Débuter
    Réponses: 2
    Dernier message: 24/08/2011, 23h18
  3. Réponses: 2
    Dernier message: 04/04/2010, 23h38
  4. [A-00] Parcourir les dossiers
    Par Slici dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/03/2009, 13h00
  5. Comment parcourir les dossiers situé dans le client
    Par etarip dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/11/2005, 10h16

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