Si vous voulez plus d'options, vous pouvez utiliser cette fonction qui a pour but de remplir un tableau de fichiers présents dans un dossier. Les options sont : la récursivité et le modèle à utiliser.
public static ArrayList<File> listFilesForFolder(final File folder,
final boolean recursivity,
final String patternFileFilter) {
// Inputs
boolean filteredFile = false;
// Ouput
final ArrayList<File> output = new ArrayList<File> ();
// Foreach elements
for (final File fileEntry : folder.listFiles()) {
// If this element is a directory, do it recursivly
if (fileEntry.isDirectory()) {
if (recursivity) {
output.addAll(listFilesForFolder(fileEntry, recursivity, patternFileFilter));
}
}
else {
// If there is no pattern, the file is correct
if (patternFileFilter.length() == 0) {
filteredFile = true;
}
// Otherwise we need to filter by pattern
else {
filteredFile = Pattern.matches(patternFileFilter, fileEntry.getName());
}
// If the file has a name which match with the pattern, then add it to the list
if (filteredFile) {
output.add(fileEntry);
}
}
}
return output;
}
Best, Adrien
9 votes
Je suis d'accord, indiquez la classe à utiliser pour que le posteur puisse se familiariser avec les différentes méthodes, sinon le posteur ne prend pas la peine de lire l'API pour savoir quelles autres méthodes sont disponibles.
6 votes
Voulez-vous dire tous les fichiers d'un dossier, ou tous les fichiers d'un dossier et tous les sous-dossiers ?
3 votes
Un lien actualisé vers l'API : docs.oracle.com/javase/7/docs/api/java/io/file.html
2 votes
Si vous utilisez Java 7 ou une version plus récente, vous pouvez utiliser
Files.walkFileTree
voir stackoverflow.com/a/23814217/1115554