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

javaobject oriented programmingprogramming

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

它们之间的主要区别在于

  • list() 方法以 String 数组的形式返回给定目录中所有文件的名称。

  • ListFiles() 方法以 File 类型数组的形式返回给定目录中文件的对象(File)。

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

list() 方法示例

import java.io.File;
import java.io.IOException;
public class ListOfFiles {
   public static void main(String args[]) throws IOException {
      //为目录创建 File 对象
      File path = new File("D:\ExampleDirectory");
      //所有文件和目录的列表
      String content[] = path.list();
      System.out.println("指定目录中的文件和目录列表:");
      for(int i=0; i < content.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 对象
      File path = new File("D:\ExampleDirectory");
      //所有文件和目录的列表
      File files [] = path.listFiles();
      System.out.println("List of files and directories in the specified directory:");
      for(File file : files) {
         System.out.println("File name: "+file.getName());
         System.out.println("File path: "+file.getAbsolutePath());
         System.out.println(" ");
      }
   }
}

输出

List of files and directories in the specified directory:
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

相关文章