4

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

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

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

   [Ljava.io.File;@67d07b41

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

4

1 回答 1

5

将您的代码更改为:

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

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

你得到了那个奇怪的输出,因为你正在打印一个数组对象,这就是数组对象作为toString(). 如果要打印数组的内容,则必须如上所述手动进行。

于 2012-12-17T18:05:45.703 回答