该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