Comment chercher des fichiers/directory

Résolu/Fermé
CharlEm80 Messages postés 66 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 août 2012 - 12 sept. 2006 à 16:41
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 - 13 sept. 2006 à 12:23
Bonjour à tous,

Je suis à la recherche d'une fonction de recherche de fichiers. Un truc du genre on lui donne le fichier et le répertoire de départ et il renvoie les emplacements des fichiers trouvés.

J'ai trouvé des sources qui le font mais avec des classes graphiques mais moi j'en ai besoin pour faire du mode batch donc sans les graphismes.

Avez-vous déjà vu celà sur le forum ? Sinon avez vous dans un de vos nombreux codes ce genre de truc.

Ca me dérange pas d'adapter mais en tant que super débutant en Java j'aimerai avoir un départ sur lequel m'appuyer.

Merci à tous

2 réponses

cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 17
13 sept. 2006 à 12:23
Je t'ai écrit ça vite fait, je pense que ça fait à peu près ce que tu veux, libre à toi de le modifier à ta guise :


import java.io.*;


public class Recherche{

    // argument1: le dossier de recherche

    // argument2: la chaine que tu recherche

    public static void main(String args[]){

        if (args.length!=2){

            System.exit(1);

        }

        File dossier=new File(args[0]);

        // tu commences la recherche

        System.out.println(recherche(dossier, args [1]));

    }

    public static String recherche(File dossier, String chaineRecherchee){

        File liste[]=dossier.listFiles ();

        StringBuffer retour=new StringBuffer();

        // pour chaque fichier/dossier du répertoire:

        for (int i=0;i<liste.length;i++){

        // si c'est un fichier, tu fais ton test pour savoir si c'est ce que tu recherches

        if (liste[i].isFile() && liste[i].getName().contains (chaineRecherchee)){

            retour.append (liste[i].getAbsolutePath ());

            // on passe à la ligne

            retour.append ("\n");

        }

        // si c'est un dossier, tu fais un appel récursif à cette fonction de recherche

        if (liste[i].isDirectory()){

            retour.append (recherche(liste[i],chaineRecherchee));

        }   

        }

        // Au final, tu retourne ta chaine

        return retour.toString ();

    }

}
3
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
13 sept. 2006 à 09:23
Salut,


je ne vois pas vraiment le problème concernant la partie graphique, il
te suffit simplement d'en faire abstraction et de ne récupérer que la
partie qui t'interesse.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Rejoignez-nous