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 :

Trouver un nom de fichier dans une liste


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Par défaut Trouver un nom de fichier dans une liste
    Bonjour,
    J'ai un nom de fichier mais on ne sait pas exactement ou il se trouve je dois donc le chercher dans le chemin principal.
    J'ai effectué la recherche grâce au code que j'ai pu récupéré et l'aide des personnes de se forum, mais je n'arrive pas à débuter la recherche du fichier dans cette recherche récursive.
    Pouvez vous me mettre sur la voie ?

  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
    Donne le code que tu as commencé à écrire.
    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 confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Par défaut
    Voici le code qui à déjà été rédigé. Mais actuellement il affiche seulement la liste des répertoires, sous-répertoires et fichier du chemin renseigné.
    Et je voudrais qu'il trouve le fichier que je cherche dans toute cette liste....

    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
    import java.io.*; 
    public class recursivite {
    	public static void listeRepertoire ( File repertoire ) {
            System.out.println ( repertoire.getAbsolutePath());
     
            if ( repertoire.isDirectory ( ) ) {
                    File[] list = repertoire.listFiles();
                    if (list != null){
    	                for ( int i = 0; i < list.length; i++) {
    	                        // Appel récursif sur les sous-répertoires
    	                        listeRepertoire( list[i]);
     
    	                } 
                    } else {
                    	System.err.println(repertoire + " : Erreur de lecture.");
                    }
            } 
    } 
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		recursivite.listeRepertoire(new File("C:\\Users\\Tiphanie\\Documents"));
     
     
    	}
     
    }

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Par défaut
    Bonjour,

    Tu trouveras justement ici une discussion qui traite, entre autres choses, de la recherche d'un fichier:

    http://www.developpez.net/forums/d66...tance-fichier/

    C'est une source de boijea que tu dois adapter à ton cas.

    Cordialement,

    Dan.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Par défaut
    Bonjour,
    Merci de ta réponse c'est bien ce que je cherche !!
    J'ai adapté le code mais le problème c'est que j'ai des erreurs et que je ne sais pas pourquoi !!

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    import java.io.*;
    public class trouvefich {
    
    	/**
    	 * @param args
    	 */
    	
    	//Vérifie si le fichier est un répertoire
    	//
    	class MyFileFilterDir implements FilenameFilter {
    	    public boolean accept(File dir, String name) {
    	        File theFile = new File(dir + File.separator + name);
    	        return theFile.isDirectory();
    	    }
    	}
    	 
    	//Vérifie si le fichier n'est pas un répertoire et possède le nom correct
    	//
    	class MyFileFilterFile implements FilenameFilter {
    	    public boolean accept(File dir, String name) {
    	        File theFile = new File(dir + File.separator + name);
    	        if (theFile.isDirectory()) {
    	            return false;
    	        }
    	 
    	        if (name.toLowerCase().compareTo(SearchFile.fileName.toLowerCase()) == 0) {
    	            return true;
    	        }
    	 
    	        return false;
    	    }
    	   
    	}
    	 
    	public class SearchFile {
    	    static public String fileName  = "preferencesContext.xml";
    	    static public String dirResult = null;
    //J'ai rajouté cette accolade !!	
    }
    	
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		String startPoint = "C:\\Users\\Tiphanie\\Desktop\\Vanilla-TomCat\\vanilla-tomcat-mysql-1.30-RC5\\webapps\\";
    		 
    	       if (searchDir(startPoint)) {
    	            System.out.println("J'ai trouvé le fichier " + SearchFile.fileName + " dans " + SearchFile.dirResult);
    	            return;
    	       }
    	 
    	       System.out.println("Je n'ai pas trouvé le fichier " + SearchFile.fileName + " dans " + startPoint);
    	 
    	    }
    	 
    	    //Cherche dans un répertoire
    	    //
    	    public static boolean searchDir(String dir) {
    	    	SearchFile.dirResult = dir;
    	       File myDir = new File(dir);
    	       String theFiles[] = myDir.list(new MyFileFilterFile());
    	 
    	       if ((theFiles != null) && (theFiles.length > 0)) {
    	           return true;
    	       }
    	       else {
    	           String theDirs[] = myDir.list(new MyFileFilterDir());
    	 
    	           if (theDirs != null) {
    	             for (int i = 0; i < theDirs.length; i++) {
    	               if (searchDir(dir + File.separator + theDirs[i])) {
    	                   return true;
    	               }
    	             }
    	           }
    	       }
    	 
    	       return false;
    	    }
    	}
    (j'ai mis le texte des erreurs en rouges)
    Pour Filename et dirresult il me dit que e ne peut pas les déclarer en Static !!
    il me soulignait aussi Filename et dirresult de partout j'ai donc rajouter "SearchFile." devant mes deux variables depuis il ne me les soulignes plus
    Ensuite il me souligne :
    new MyFileFilterFile() et new MyFileFilterDir() mais je ne comprends pas l'erreur !!!

  6. #6
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Bonjour,

    J'ai modifié un peu ton code pour n'avoir plus erreurs.


    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    import java.io.*;
     
    public class Trouvefich 
    {
     
     
    	//Vérifie si le fichier est un répertoire
    	//
    	class MyFileFilterDir implements FilenameFilter
    	{
    	    public boolean accept(File dir, String name)
    	    {
    	        File theFile = new File(dir + File.separator + name);
    	        return theFile.isDirectory();
    	    }
    	}
     
    	//Vérifie si le fichier n'est pas un répertoire et possède le nom correct
    	//
    	class MyFileFilterFile implements FilenameFilter
    	{
    	    public boolean accept(File dir, String name)
    	    {
    	        File theFile = new File(dir + File.separator + name);
    	        if (theFile.isDirectory())
    	        {
    	            return false;
    	        }
     
    //	        if (name.toLowerCase().compareTo(SearchFile.fileName.toLowerCase()) == 0)
    	        if (name.toLowerCase().compareTo(fileName.toLowerCase()) == 0)
    	        {
    	            return true;
    	        }
     
    	        return false;
    	    }
     
    	}
     
    	// Ajouter ces 2 lignes
    	public static String fileName  = "preferencesContext.xml";
    	public static String dirResult = null;
     
    	// pour remplace les lignes suivantes
    //	public class SearchFile
    //	{
    //	    static public String fileName  = "preferencesContext.xml";
    //	    static public String dirResult = null;
    //		//J'ai rajouté cette accolade !!
    //	}
     
    	public static void main(String[] args)
    	{
    		Trouvefich test = new Trouvefich ();
     
    		// TODO Auto-generated method stub
    		String startPoint = "C:\\Users\\Tiphanie\\Desktop\\Vanilla-TomCat\\vanilla-tomcat-mysql-1.30-RC5\\webapps\\";
     
    	    if (test.searchDir(startPoint))
    	    {
    	        System.out.println("J'ai trouvé le fichier " + fileName + " dans " + dirResult);
    	        return;
    	    }
     
    	    System.out.println("Je n'ai pas trouvé le fichier " + fileName + " dans " + startPoint);
     
    	}
     
    	//Cherche dans un répertoire
    	//
    	public boolean searchDir(String dir)
    	{
    		dirResult = dir;
    	    File myDir = new File(dir);
    	    String theFiles[] = myDir.list(new MyFileFilterFile());
     
    	    if ((theFiles != null) && (theFiles.length > 0))
    	    {
    	        return true;
    	    }
    	    else
    	    {
    	        String theDirs[] = myDir.list(new MyFileFilterDir());
     
    	        if (theDirs != null)
    	        {
    	            for (int i = 0; i < theDirs.length; i++)
    	            {
    	                if (searchDir(dir + File.separator + theDirs[i]))
    	                {
    	                   return true;
    	                }
    	            }
    	        }
    	    }
     
    	    return false;
    	}
    }


    Essai de suivre les recommandations pour les règles de programmation en Java pour les classes, nom variables, ...

    Je n'ai pas testé ce code mais la compilation ne donne pas d'erreurs

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

Discussions similaires

  1. Récupérer des noms de fichiers dans une table ?
    Par florus dans le forum Access
    Réponses: 5
    Dernier message: 25/03/2006, 17h34
  2. Shell: récupérer le bon nom de fichier dans une variable
    Par claralavraie dans le forum Linux
    Réponses: 1
    Dernier message: 10/01/2006, 11h45
  3. stocker les nom de fichiers dans une base
    Par Corben dans le forum Windows
    Réponses: 2
    Dernier message: 04/01/2006, 15h50
  4. Upload et enregistrement du nom du fichier dans une bdd
    Par johan_barbier dans le forum XMLRAD
    Réponses: 8
    Dernier message: 26/09/2005, 12h02
  5. Réponses: 4
    Dernier message: 24/04/2003, 22h28

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