Je voulais un programme qui pourrait lister tout le contenu disponible dans un répertoire. J'ai trouvé un beau code dans java2's.com, http://www.java2s.com/Code/Java/File-Input-Output/ListingtheDirectoryContents.htmJe ne comprends pas le programme
Et voici le code,
import java.io.File;
import java.util.Arrays;
public class Dir {
static int indentLevel = -1;
static void listPath(File path) {
File files[];
indentLevel++;
files = path.listFiles();
Arrays.sort(files);
for (int i = 0, n = files.length; i < n; i++) {
for (int indent = 0; indent < indentLevel; indent++) {
System.out.print(" ");
}
System.out.println(files[i].toString());
if (files[i].isDirectory()) {
listPath(files[i]);
}
}
indentLevel--;
}
public static void main(String args[]) {
listPath(new File(".\\code"));
}
}
Ce que je ne comprends pas la n
variable dans la première boucle for
. Si elle n'est définie nulle part, alors pourquoi le programme ne montre aucune erreur?
Ceci est en fait un mauvais exemple. Ce n'est pas threadsafe. Je refactoriser 'indentLevel' comme variable locale et le passer comme un autre argument. – BalusC
@BalusC: d'accord, c'est un morceau de code horrible. –