Java中list()和listFiles()方法之间的区别

java.io包的名为File的类表示系统中的文件或目录(路径名)。为了获得目录中所有现有文件的列表,此类提供了list()ListFiles()方法。

它们之间的主要区别是

  • 列表()方法返回一个字符串数组的形式给定目录中的所有文件的名称。

  • ()ListFiles方法返回的文件的对象(文件)在给定的目录,在文件类型的阵列的形式。

即,如果只需要特定目录中文件的名称,则可以使用该list()方法;如果需要目录中文件的详细信息(例如名称,路径等),则需要使用该ListFiles()方法,检索所有文件,并通过调用相应方法获得所需的详细信息。

list()方法示例

import java.io.File;
import java.io.IOException;
public class ListOfFiles {
   public static void main(String args[]) throws IOException {
      //为目录创建文件对象
      File path = new File("D:\\ExampleDirectory");
      //所有文件和目录的列表
      String contents[] = path.list();
      System.out.println("指定目录中的文件和目录列表:");
      for(int i=0; i < contents.length; i++) {
         System.out.println(contents[i]);
      }
   }
}

输出结果

指定目录中的文件和目录列表:
SampleDirectory1
SampleDirectory2
SampleFile1.txt
SampleFile2.txt
SapmleFile3.txt

listFiles()方法示例

import java.io.File;
import java.io.IOException;
public class ListOfFiles {
   public static void main(String args[]) throws IOException {
      //为目录创建文件对象
      File path = new File("D:\\ExampleDirectory");
      //所有文件和目录的列表
      File files [] = path.listFiles();
      System.out.println("指定目录中的文件和目录列表:");
      for(File file : files) {
         System.out.println("File name: "+file.getName());
         System.out.println("File path: "+file.getAbsolutePath());
         System.out.println(" ");
      }
   }
}

输出结果

指定目录中的文件和目录列表:
File name: SampleDirectory1
File path: D:\ExampleDirectory\SampleDirectory1

File name: SampleDirectory2
File path: D:\ExampleDirectory\SampleDirectory2

File name: SampleFile1.txt
File path: D:\ExampleDirectory\SampleFile1.txt

File name: SampleFile2.txt
File path: D:\ExampleDirectory\SampleFile2.txt

File name: SapmleFile3.txt
File path: D:\ExampleDirectory\SapmleFile3.txt