2009-06-09 6 views
0

Voici le code que j'ai jusqu'ici:Comment importer une liste de répertoire (et de sous-répertoire) en Java?

import java.io.*; 

class JAVAFilter implements FilenameFilter { 
    public boolean accept(File dir, String name) { 
     return (name.endsWith(".java")); 
    } 
} 

public class tester { 
    public static void main(String args[]) 
    { 
     FilenameFilter filter = new JAVAFilter(); 
     File directory = new File("C:\\1.3\\"); 
     String filename[] = directory.list(filter); 
    } 
} 

À ce stade, il va stocker une liste de tous les fichiers * .java à partir du répertoire C: \ 1.3 \ dans le tableau de chaînes de nom de fichier . Cependant, je voudrais stocker une liste de tous les fichiers java également dans les sous-répertoires (de préférence avec leur chemin dans C: \ 1.3 \ spécifié aussi.) Comment puis-je faire cela? Merci!

Répondre

1

pour autant que je sache, vous devrez faites-le manuellement (récursivement), c'est-à-dire que vous devrez appeler liste (filtre) pour tous les sous-répertoires de C: \ 1.3 \, et ainsi de suite ....

3

J'ai peur vous ne pouvez pas le faire avec le vous devrez lister tous les fichiers et les répertoires, puis faire vous-même filtrer quelque chose comme cette méthode list(FilenameFilter):..

public List<File> getFiles(File dir, FilenameFilter filter) { 
    List<File> ret = new ArrayList<File>(); 
    for (File f : dir.listFiles()) { 
     if (f.isDirectory()) { 
      ret.addAll(getFiles(f, filter)); 
     } else if (filter.accept(dir, f.getName())) { 
      ret.add(f); 
     } 
    } 
    return ret; 
} 
Questions connexes