2013-02-20 6 views
1

Je dois construire une liste de tous les noms des fichiers texte dans le répertoire courant ...les noms des fichiers texte

j'ai écrit quelque chose comme ça, mais il est je ne fonctionne pas vraiment juste vu cela sur le net

String[] allomanyok2 = fl.list();fl est un type File ....

je besoin des noms des fichiers texte parce que je dois faire des choses différentes avec eux ...

quelqu'un peut-il me aider comment puis-je obtiens t ses noms dans une liste ou quelque chose? ... thx expected

Répondre

2

En supposant que vous voulez que les fichiers texte avec .txt extension, vous pouvez effectuer les opérations suivantes:

File file = new File("myDirectory"); 
String[] myTextFiles = file.list(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.toLowerCase().endsWith(".txt"); // Andrew Thompson's comment 
    } 
}); 

Voici la méthode list() prend une FilenameFilter classe anonyme qui met en œuvre la méthode accept(File, String). Cette méthode vérifie simplement si le nom du fichier se termine par .txt, renvoie true si c'est le cas, renvoie false si ce n'est pas le cas. La méthode list() retourne uniquement les fichiers se terminant par .txt.

Si vous voulez que votre tableau comme une liste:

List<String> myListTextFiles = Arrays.asList(myTextFiles); 
+0

il est dit que le fichier file.list() ne peut pas avoir d'arguments ... – spd92

+0

Utilisez-vous 'java.io.File'? –

+0

@Sotirios Delimanolis Désolé, j'ai essayé d'éditer votre réponse à la place de la mienne – mbatchkarov

1

Vous avez besoin d'utiliser File#list(FilenameFilter). Implémentez un filtre qui n'accepte que les chaînes qui se terminent par txt. Je suppose que tous les fichiers texte auront une extension .txt.

String[] allomanyok2 = fl.list(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.toLowerCase().endsWith(".txt"); 
    }; 
}); 
+0

et comment dois-je faire? Je suis assez nouveau à Java donc il y a des choses que je ne connais pas encore ... encore: p – spd92

+0

voir la réponse mise à jour – mbatchkarov

+3

Je recommanderais 'return name.toLowerCase(). endsWith (" txt ");' pour attraper 'README.TXT'. –

1

Essayez ceci:

File workingDir = new File("."); 
String[] textFiles = workingDir.list(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.endsWith(".txt"); 
    }; 
}); 
+0

Je recommanderais 'return name.toLowerCase(). EndsWith (" txt ");' pour attraper 'README.TXT'. –

Questions connexes