Chercher un fichier

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 444 fois - Téléchargée 16 fois

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

Ajouter un commentaire

Commentaires

cs_parkour
Messages postés
1
Date d'inscription
jeudi 8 mars 2007
Statut
Membre
Dernière intervention
19 octobre 2008

merci pour le code
kryshnar
Messages postés
44
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
26 février 2009

oki je regarde
sheorogath
Messages postés
2465
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
11
merci bien,
tu n'as besoin de mettre que les fonctions pas les classes et tout ca ;)
Verifie que se soit pas en doublon, surtout pour le listeDeFichiers qui existe deja il me semble
kryshnar
Messages postés
44
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
26 février 2009

oki
sheorogath
Messages postés
2465
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
11

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.