java显示文件夹的内容

时间:2014-07-05 02:06:56

标签: java

我有一个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"等系统文件夹时,它会返回很多意想不到的结果:

  1. 它会显示我在文件夹中找不到的一些文件夹,例如"所有用户","应用程序数据"。另外,它们不是隐藏文件。

  2. 某些文件夹和文件确实存在,但它们不会显示在我的结果中。包含这些文件的文件夹的名称以点开头,例如" .android"。什么是这种类型的文件夹?我该如何处理?

  3. 我的操作系统是Windows 8; IDE是NetBeans 8.0。

1 个答案:

答案 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.
    }
  }
}