如何使用Java列出目录中的所有文件(仅)?

该ListFiles()方法返回一个数组,其中包含当前 (File) 对象表示的路径中所有文件(和目录)的对象(抽象路径)。

文件过滤器接口是路径名的过滤器,您可以将其作为参数传递给listFiles()方法。此方法过滤通过的过滤器传递的文件名。

要获取文件夹中的文件,请实现一个 FileFilter,它只接受文件并将其作为参数传递给该listFiles()方法。

以下是 ExampleDirectory 内容的屏幕截图

示例

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
public class Demo{
   public static void main(String args[]) throws IOException {
    //为目录创建文件对象
    File directoryPath = new File("D:\ExampleDirectory");
    //为目录文件创建过滤器
    FileFilter fileFilter = new FileFilter(){
         public boolean accept(File dir) {          
            if (dir.isFile()) {
               return true;
            } else {
               return false;
            }
         }
      };        
      File[] list = directoryPath.listFiles(fileFilter);
      System.out.println("指定目录下的jpeg文件列表:");  
      for(File fileName : list) {
         System.out.println(fileName);
      }  
   }
}
输出结果
指定目录下的jpeg文件列表:
D:\ExampleDirectory\demo1.pdf
D:\ExampleDirectory\demo2.pdf
D:\ExampleDirectory\sample1.txt
D:\ExampleDirectory\sample2.txt
D:\ExampleDirectory\sample3.txt
D:\ExampleDirectory\sample_jpeg1.jpg
D:\ExampleDirectory\sample_jpeg2.jpg
D:\ExampleDirectory\test1.docx
D:\ExampleDirectory\test2.docx

示例

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class ListOfFiles {
   public static void main(String[] args) throws IOException {
      Stream<Path> path = Files.walk(Paths.get("D:\ExampleDirectory"));
      path = path.filter(Files::isRegularFile);
      path.forEach(System.out::println);
    }
}
输出结果
D:\ExampleDirectory\demo1.pdf
D:\ExampleDirectory\demo2.pdf
D:\ExampleDirectory\sample1.txt
D:\ExampleDirectory\sample2.txt
D:\ExampleDirectory\sample3.txt
D:\ExampleDirectory\sample_jpeg1.jpg
D:\ExampleDirectory\sample_jpeg2.jpg
D:\ExampleDirectory\test1.docx
D:\ExampleDirectory\test2.docx

猜你喜欢