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 :

Rechercher un fichier dans un dossier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Points : 75
    Points
    75
    Par défaut Rechercher un fichier dans un dossier
    Bonjour
    J'etais entrain d'ecrire une methode qui permet la recherche d'un fichier selon son extension dans un dossier spécifique, voila ce que j'avais élaboré jusqu'à mnt :

    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
    public void browseRep(File rep, String ext){
    		System.out.println(rep.getAbsolutePath());
     
    		if (rep.isDirectory()) {
    			File[] list = rep.listFiles();//un tableau qui contient les fichiers du rep
    			String [] resultat = null;// un tableau où je stockerai les resultats par la suite
    			int j=0;
    			for (int i = 0; i < list.length; i++) {
    				if (list[i].isFile()) {
    					String fileName = list[i].getName();//je stocke le nom du fichier en cours dans fileName
    					String extension = fileName.substring(fileName.length() - 3,fileName.length());//je stock les 3 derniers caractere du nom de fichier
    					if (extension.equals(ext)) {
    						resultat[j] = fileName;// je remplie le tableau par le nom des fichiers qui ont une extention eguale à ext
    						j++;	
    					}
    				}
    			}
    		}
     
    	}
    Je sais que c'est un code plus ou moins bricolé, mais je viens de commencer et j'ai deux petites question :

    1 - Je dois appeler cette methode depuis une classe ou une autre methode, alors comment faire pour qu'elle me retourne le tableau "resultat" et comment puis je l'exploiter une fois retourné

    2 - Est ce qu'il ya une façon bien meilleur de faire une recherche de fichier selon l'extension...

    merci d'avance

  2. #2
    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
    Bonjour, il y a plus simple, utilises un FileNameFilter que tu donnes en paramètre à la méthode listFiles.

    Une extension ne fait pas forcément 3 lettres (jpeg par exemple), tu devrais garder ce qui se trouve après le dernier '.' point dans le nom du fichier.

  3. #3
    Membre éprouvé
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Points : 950
    Points
    950
    Par défaut Rechercher un fichier dans un dossier
    Bonjour,
    Pour ta fonction tu ajoutes à la fin un Return comme suit :
    Comme ça, ta fonction nous renvoie un tableau qu'on pourrait exploiter.
    Pour l'appel via une classe, tu ferais comme suit : Imaginons que ta classe qui contient ta fonction s'appelle TraitFichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TraitFichier traiteFic = new TraitFichier ();
    .......
    String[] listFichier = traiteFic.browseRep(Repertoire, extension);
    Merci

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Pour illustrer le conseil précédent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    File[] fileList = rep.listFiles(new FileFilter() {
    				public boolean accept(File file) {
    					return file.isFile()
    							&& file.getName().endsWith(".java");
    				}
    			});

  5. #5
    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 : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Une méthode récursive serait plus élégante, avec une méthode private interne pour faciliter la lisibilité :
    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
    	public ArrayList<File> browseRep( File rep, String ext )
    	{
    		ArrayList<File> result = new ArrayList<File>();
     
    		if( rep.isDirectory() )
    		{
    			internalBrowseRep( result, rep, ext );
    		}
     
    		return result;
    	}
     
    	private void internalBrowseRep( ArrayList<File> result, File rep, String ext )
    	{
    		for( File fichier : rep.listFiles() )
    		{
    			if( fichier.isDirectory() )
    			{
    				internalBrowseRep( result, fichier, ext );
    			}
    			else if( fichier.getName().endsWith( ext ) )
    			{
    				result.add( fichier );
    			}
    		}
    	}
    EDIT : multi-grillé
    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.

  6. #6
    Membre éprouvé
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Points : 950
    Points
    950
    Par défaut Rechercher un fichier dans un dossier
    Autant pour moi.... Un détail important ! Je confirme ce que vous avez signalé. Il faut que la fonction ait le même type que ce qu'elle retourne. Si elle retourne un String[] il faut qu'elle sera de ce type, on doit supprimer le mot clé void. si Elle retourne un ArrayList dans ce cas on écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public ArrayList<File> browseRep( File rep, String ext )
    Merci pour vos précisions

  7. #7
    Membre habitué Avatar de sewatech
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 166
    Points
    166
    Par défaut
    Retourner du List plutôt que ArrayList serait encore mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public List<File> browseRep( File rep, String ext )
    C'est juste plus propre et plus évolutif, si plus tard, tu veux utiliser une autre implémentation de List.

  8. #8
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Points : 75
    Points
    75
    Par défaut
    Vos réponses précises m'ont clarifié plusieurs points.
    Merci à vous tous pour votre temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Rechercher un fichier dans plusieurs dossiers
    Par AcideBlood dans le forum VB.NET
    Réponses: 11
    Dernier message: 14/12/2014, 20h47
  2. Macro recherche de fichiers dans un dossier et creation d hyperlink
    Par Elouan.pecheur dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/03/2013, 21h56
  3. [Toutes versions] Formulaire de recherche de fichier dans un dossier VBA Excel
    Par azizabdel84 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/09/2011, 22h09
  4. Recherche de fichiers dans un dossier et Threads
    Par rambc dans le forum Général Python
    Réponses: 3
    Dernier message: 27/06/2009, 17h17
  5. Rechercher un fichier dans un dossier
    Par GomuSan dans le forum Windows
    Réponses: 0
    Dernier message: 30/05/2008, 20h02

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