我想要一個可以列出目錄中所有可用內容的程序。我發現java2's.com一個漂亮的代碼, http://www.java2s.com/Code/Java/File-Input-Output/ListingtheDirectoryContents.htm我不明白該程序
這裏是代碼,
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"));
}
}
我不明白的是在第一循環for
變量n
。如果它沒有在任何地方定義,那麼爲什麼程序沒有顯示任何錯誤?
這實際上是一個不好的例子。這不是線程安全的。我將'indentLevel'重構爲局部變量並將其作爲另一個參數傳遞。 – BalusC 2010-11-15 14:27:13
@BalusC:贊同,這是一段糟糕的代碼。 – 2010-11-15 14:27:58