我有一个JAVA程序来显示文件夹的内容:文件,文件夹和子文件夹的内容。
public static void displayContent(File curFolder, int indent){
if(curDir.isFile()){
System.out.println(curDir.getName());
} else if(curDir.isFolder()){
System.out.println(curDir.getName());
if(curDir.length() > 0){
for(File file: curDir.listFiles()){
displayContent(file, indent + 4);
}
}
}
}
我创建了一个带有一堆子文件夹的测试文件夹来测试我的程序,它运行得很好。但是当我使用我的程序来测试"C:\Users"
等系统文件夹时,它会返回很多意想不到的结果:
它会显示我在文件夹中找不到的一些文件夹,例如"所有用户","应用程序数据"。另外,它们不是隐藏文件。
某些文件夹和文件确实存在,但它们不会显示在我的结果中。包含这些文件的文件夹的名称以点开头,例如" .android"。什么是这种类型的文件夹?我该如何处理?
我的操作系统是Windows 8; IDE是NetBeans 8.0。
答案 0 :(得分:0)
我很确定您要打印路径而不是打印名称。这样你就可以看到文件夹结构了。此外,您的代码似乎有相当多的拼写错误,
public static void displayContent(File curDir, int indent) { // <-- curDir used below
if (curDir.isFile()) {
System.out.println(curDir.getPath());
} else if (curDir.isDirectory()) {
System.out.println(curDir.getPath());
for (File file : curDir.listFiles()) {
displayContent(file, indent + 4); // <-- displayContent not displayContents.
}
}
}