在 Java 中打开目录

use*_*047 6 java

我希望能够使用Java代码打开目录,目录意味着一个包含文件夹的“文件夹”,而文件夹又包含文件。这是我现在拥有的代码的一部分:

public void listFiles(String folder) {
    File directory = new File(folder);
    File[] contents = directory.listFiles();
    System.out.println(contents);
Run Code Online (Sandbox Code Playgroud)

由于某种原因,如果我将文件夹指向目录级别,它会返回以下行:

   [Ljava.io.File;@67d07b41
Run Code Online (Sandbox Code Playgroud)

但是,如果我将其指向下一层(在文件夹级别,直接包含文件),那么它会很好地列出文件夹中的文件名。有人可以告诉我为什么这对我不起作用吗?

Mau*_*res 7

将您的代码更改为:

public void listFiles(String folder){
File directory = new File(folder);
File[] contents = directory.listFiles();
for ( File f : contents) {
  System.out.println(f.getAbsolutePath());
}
Run Code Online (Sandbox Code Playgroud)

您将看到打印的所有完整路径。

你会得到奇怪的输出,因为你正在打印一个数组对象,而这就是数组对象作为toString(). 如果你想打印数组的内容,你必须像上面那样手动执行。