Je ne savais pas très bien comment nommer cette question, mais j'ai une sorte de bug que je ne comprends pas vraiment.Impossible d'ajouter des fichiers à la liste après la récursivité Java
J'ai une méthode qui recherche récursivement les sous-répertoires étiquetés 'calcul' d'un répertoire racine pour son contenu. Et cela semble fonctionner quand j'imprime sur la console. Toutefois, lorsque j'essaie d'ajouter ces fichiers à une liste de fichiers, il semble ne pas fonctionner, la taille est 0 ...
Comment puis-je ajouter ces fichiers à une liste ou un fichier [] ou tout type de structure de données donc je peux les traiter?
Voici mon code:
public static List<File> walkDirectory(String path) {
List<File> fileList = new ArrayList<File>();
File root = new File(path);
File[] list = root.listFiles();
if (list == null) return null;
for (File f : list) {
if (f.isDirectory()) {
walkDirectory(f.getAbsolutePath());
}
else if (f.getParentFile().getName().contains("calculation")) {
fileList.add(f); // does not work...
System.out.println("File: " + f.getAbsoluteFile());
}
}
return fileList;
}
public static void main(String[] args) {
System.out.println(FileWalker.walkDirectory("/path/to/root/directory").size()); // size is 0
}
Voulez-vous que fileList devienne un champ de classe? –
Je pense que vous avez obtenu votre réponse :) si non, n'hésitez pas à demander –
Cela semble fonctionner! Bien que j'aie essayé cela auparavant, je n'avais pas fait l'instanciation de ArrayList en dehors de la méthode –