Comment chercher des fichiers/directory

Résolu/Fermé
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
1 août 2012
-
Messages postés
124
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2009
-
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

Messages postés
124
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2009
16
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 ();

    }

}
Messages postés
5367
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
111
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