如何在 Java 中获取文件夹中所有文件/文件夹的列表?
名为 File 的类属于 java.io 包,它表示系统中的文件或目录(路径名)。此类提供了各种方法来对文件/目录执行各种操作。
要获取目录中所有现有文件的列表,此类提供了 files 类,它提供了 list()(返回名称)和 ListFiles()(返回 File 对象),并具有不同的变体。
List() 方法
此方法返回一个字符串数组,其中包含当前(File)对象所表示的路径中所有文件和目录的名称。
使用此方法,您可以只打印文件和目录的名称。
示例
以下 Java 程序列出了路径 D:\ExampleDirectory 中所有文件和目录的名称。
import java.io.File; import java.io.IOException; public class ListOfFiles { public static void main(String args[]) throws IOException { //Creating a File object for directory File directoryPath = new File("D:\ExampleDirectory"); //List of all files and directories String contents[] = directoryPath.list(); System.out.println("List of files and directories in the specified directory:"); for(int i=0; i<contents.length; i++) { System.out.println(contents[i]); } } }
输出
List of files and directories in the specified directory: SampleDirectory1 SampleDirectory2 SampleFile1.txt SampleFile2.txt SapmleFile3.txt
ListFiles() 方法
此方法返回一个数组,该数组保存当前(File)对象所表示的路径中所有文件(和目录)的对象(抽象路径)。
由于此方法返回文件夹中每个文件/目录的对象,因此您可以使用它访问文件/目录的属性,例如大小、路径等。
示例
以下 Java 程序打印路径 D:\ExampleDirectory 中所有文件的名称、路径和大小。
import java.io.File; import java.io.IOException; public class ListOfFiles { public static void main(String args[]) throws IOException { //Creating a File object for directory File directoryPath = new File("D:\ExampleDirectory"); //List of all files and directories File filesList[] = directoryPath.listFiles(); System.out.println("List of files and directories in the specified directory:"); for(File file : filesList) { System.out.println("File name: "+file.getName()); System.out.println("File path: "+file.getAbsolutePath()); System.out.println("Size :"+file.getTotalSpace()); System.out.println(" "); } } }
输出
List of files and directories in the specified directory: File name: SampleDirectory1 File path: D:\ExampleDirectory\SampleDirectory1 Size :262538260480 File name: SampleDirectory2 File path: D:\ExampleDirectory\SampleDirectory2 Size :262538260480 File name: SampleFile1.txt File path: D:\ExampleDirectory\SampleFile1.txt Size :262538260480 File name: SampleFile2.txt File path: D:\ExampleDirectory\SampleFile2.txt Size :262538260480 File name: SapmleFile3.txt File path: D:\ExampleDirectory\SapmleFile3.txt Size :262538260480
List(FilenameFilter filter) 方法
如其签名所示,此方法接受一个 FilenameFilter 对象,并返回一个字符串数组,其中包含当前(File)对象所表示的路径中所有文件和目录的名称。但是,返回的数组包含根据指定过滤器过滤的文件名。
使用此方法,您可以获取特定文件夹中文件和目录的已过滤名称。
示例
以下 Java 程序打印路径 D:\ExampleDirectory 中文本文件的名称。
import java.io.File; import java.io.FilenameFilter; import java.io.IOException; public class ListOfFiles { public static void main(String args[]) throws IOException { //Creating a File object for directory File directoryPath = new File("D:\ExampleDirectory"); FilenameFilter textFilefilter = new FilenameFilter(){ public boolean accept(File dir, String name) { String lowercaseName = name.toLowerCase(); if (lowercaseName.endsWith(".txt")) { return true; } else { return false; } } }; //List of all the text files String filesList[] = directoryPath.list(textFilefilter); System.out.println("List of the text files in the specified directory:"); for(String fileName : filesList) { System.out.println(fileName); } } }
输出
指定目录中的文本文件列表 -
SampleFile1.txt SampleFile2.txt SapmleFile3.txt
ListFiles(FilenameFilter filter) 方法
此方法接受一个 FilenameFilter 对象,并返回一个 File 数组,其中包含当前 File 对象所表示的路径中所有文件和目录的对象。但是,返回的数组包含根据其名称过滤的文件(对象)。
使用此方法,您可以根据文件名获取特定文件夹中文件和目录的已过滤文件对象。
示例
以下 Java 程序打印路径 D:\ExampleDirectory 中所有文本文件的名称、路径和大小。
import java.io.File; import java.io.FilenameFilter; import java.io.IOException; public class ListOfFiles { public static void main(String args[]) throws IOException { //Creating a File object for directory File directoryPath = new File("D:\ExampleDirectory"); FilenameFilter textFilefilter = new FilenameFilter(){ public boolean accept(File dir, String name) { String lowercaseName = name.toLowerCase(); if (lowercaseName.endsWith(".txt")) { return true; } else { return false; } } }; //List of all the text files File filesList[] = directoryPath.listFiles(textFilefilter); System.out.println("List of the text files in the specified directory:"); for(File file : filesList) { System.out.println("File name: "+file.getName()); System.out.println("File path: "+file.getAbsolutePath()); System.out.println("Size :"+file.getTotalSpace()); System.out.println(" "); } } }
输出
List of the text files in the specified directory: File name: SampleFile1.txt File path: D:\ExampleDirectory\SampleFile1.txt Size :262538260480 File name: SampleFile2.txt File path: D:\ExampleDirectory\SampleFile2.txt Size :262538260480 File name: SapmleFile3.txt File path: D:\ExampleDirectory\SapmleFile3.txt Size :262538260480
ListFiles(FileFilter filter) 方法
此方法接受一个 FileFilter 对象,并返回一个 File 数组,其中包含当前 File 对象所表示的路径中所有文件和目录的(File)对象。但是,返回的数组包含根据文件属性过滤的文件(对象)。
使用此方法,您可以根据大小、路径、类型(文件或目录)等获取特定文件夹中文件和目录的已过滤文件对象。
示例
以下 Java 程序打印路径 D:\ExampleDirectory 中所有文件(而非文件夹)的名称、路径和大小。
import java.io.File; import java.io.FileFilter; import java.io.IOException; public class ListOfFiles { public static void main(String args[]) throws IOException { //Creating a File object for directory File directoryPath = new File("D:\ExampleDirectory"); FileFilter textFilefilter = new FileFilter(){ public boolean accept(File file) { boolean isFile = file.isFile(); if (isFile) { return true; } else { return false; } } }; //List of all the text files File filesList[] = directoryPath.listFiles(textFilefilter); System.out.println("List of the text files in the specified directory:"); for(File file : filesList) { System.out.println("File name: "+file.getName()); System.out.println("File path: "+file.getAbsolutePath()); System.out.println("Size :"+file.getTotalSpace()); System.out.println(" "); } } }
输出
List of the text files in the specified directory: File name: cassandra_logo.jpg File path: D:\ExampleDirectory\cassandra_logo.jpg Size :262538260480 File name: cat.jpg File path: D:\ExampleDirectory\cat.jpg Size :262538260480 File name: coffeescript_logo.jpg File path: D:\ExampleDirectory\coffeescript_logo.jpg Size :262538260480 File name: javafx_logo.jpg File path: D:\ExampleDirectory\javafx_logo.jpg Size :262538260480 File name: SampleFile1.txt File path: D:\ExampleDirectory\SampleFile1.txt Size :262538260480 File name: SampleFile2.txt File path: D:\ExampleDirectory\SampleFile2.txt Size :262538260480 File name: SapmleFile3.txt File path: D:\ExampleDirectory\SapmleFile3.txt Size :262538260480
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP