Chercher un fichier

Contenu du snippet

Bonjour,

Cette classe vous permet d'effectuer une recherche de fichiers (1 ou plusieurs) dans une LISTE de fichiers déjà existante appelé en paramètre par 'File[] fichiers'. Elle retourne une liste de fichiers correspondant a la recherche (0 ou +) et affiche la progression de la recherche. Elle affiche également le résultat de la recherche a savoir le nombre d'éléments trouvé (0 ou +).

Source / Exemple :


//1ere méthode : lister les fichiers du répertoire "repertoire"

import java.io.*;

public class listerFichier {

    static File[] listeDeFichiers(String repertoire) {
        File directoryToScan = new File(repertoire);
        File[] fichiers = null;
        System.out.println("Repertoire \"" + repertoire + "\" chargé.");
        //Liste tous les fichiers contenue dans le dossier spécifier : 
        fichiers = directoryToScan.listFiles();
        return fichiers;
    }
}

//2eme Méthode : filtrage de la liste de recherche

package ChercherUnFichier;

import java.io.*;

public class chercher {

    static File[] listerRepertoire(File[] fichiers, String fichierAChercher) {

        File[] listeDesFichiersTempo = new File[fichiers.length];
        boolean trouve = false;
        int nbreTrouve = 0;
        float pourcentageRecherche = 0;
        int i;
        //boucle de recherche de fichier correspondant au filtre :
        for (i = 0; i < fichiers.length; i++) {
            //calcul du pourcentage de progression : 
            pourcentageRecherche = (float)Math.round(((float)(100 * i) / fichiers.length)* 100) / 100;
            //vérifie si le fichier actuel correspond a la recherche
            //la variable fichierAChercher a pour valeur possible : 
            //  *  "(?i)blabla.*" => fichier commençant par "blabla"
            //  *  "(?i).*blabla.*" => fichier contenant "blabla"
            //  *  "(?i).*blabla" => fichier finissant par "blabla"
            if (fichiers[i].toString().matches(fichierAChercher) == true) {
                listeDesFichiersTempo[nbreTrouve] = fichiers[i];
                trouve = true;
                System.out.println(pourcentageRecherche + "% Fichier trouvé : " + listeDesFichiersTempo[nbreTrouve]);
                nbreTrouve++;

            } else {
                System.out.println(pourcentageRecherche + "%");
            }
        }
        //Création du tableau contenant seulement les fichiers filtré :
        File[] listeDesFichiers = new File[nbreTrouve];
        for (i = 0; i < listeDesFichiers.length; i++) {
            listeDesFichiers[i] = listeDesFichiersTempo[i];
        }
        if (trouve) {
            System.out.println("100%\n " + nbreTrouve + " fichier(s) trouvé.");
        } else {
            System.out.println("100%\nAucun fichier trouvé.");
        }
        //retourne la liste des fichiers recherchés
        return listeDesFichiers;
    }
}

Conclusion :


Ces classes sont appelées comme suivant (dans une autre classe ex : main(...)):

File[] fichiersDuRepertoire = listerFichier.listeDeFichiers(repertoireSource);
File[] listeDesFichiersATraiter = chercher.listerRepertoire(fichiersDuRepertoire, filtre);

repertoireSource est l'adresse du repertoire (ex "c:/test" ou "c:\\test")
où "fichiersDuRepertoire" est une liste crée PREALABLEMENT et "filtre" correspond au critaire de la reccherche et "listeDesFichiersATraiter" est la liste des fichiers recherché

Le programme fonctionne bien, en cas de problème contacté moi, je me ferai un plaisir de vous aider.

Cordialement

Krysh Nar
Le développeur mystérieux

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.