Java 提供了通过 java.io.file 包与文件系统交互的功能 。此功能可帮助开发人员自动操作文件和目录。
在本文中,我们将学习如何在 Java 中列出目录中的所有文件。
列出目录中所有文件的方法
我们有两种方法可以获取 Java 目录中所有文件的列表。
- 使用 listFiles()
- 使用 Java 新 I/O 包
在 Java 中列出目录中所有文件的程序
方法 1:使用 listFiles()
在 java.io.File 类中,该类提供了一个内置方法 listFiles(),该方法将返回 目录中文件的 File 对象数组。
- 爪哇岛
// Java program list all files in a directory using listFiles()
import java.io.File;
public class ListFilesExample
{
public static void main(String[] args)
{
// Path of the specific directory
String directoryPath = "C:/Users/GFG0354/Documents/JavaCode" ;
// Using File class create an object for specific directory
File directory = new File(directoryPath);
// Using listFiles method we get all the files of a directory
// return type of listFiles is array
File[] files = directory.listFiles();
// Print name of the all files present in that path
if (files != null ) {
for (File file : files) {
System.out.println(file.getName());
}
}
}
}
|
输出:
程序说明:
- 在上面的程序中,我们在
directoryPath
变量中指定了目录的路径。 - 我们创建了一个名为
directory
的File
对象,表示指定的目录路径。 - 我们使用
File
类的listFiles()
方法来检索File
对象数组,这些对象表示指定目录中包含的文件和目录。 - 我们遍历
File
对象数组,并使用getName()
方法打印每个文件的名称。
方法 2:使用 Java 新 I/O 包
新的 I/O 提供了一种新的简单方法来与文件交互和应用文件操作。Files 和 Path 类在 java.nio.file 包中可用,我们可以使用它来列出目录中的文件。
- 爪哇岛
// Java program to list all files in a directory using I/O Package
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.FileVisitOption;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.EnumSet;
public class NewIOExample {
public static void main(String[] args) throws IOException
{
// path of the specific directory
String directoryPath = "C:/Users/GFG0354/Documents/JavaCode" ;
// create a Path object for the specified directory
Path directory = Paths.get(directoryPath);
// use DirectoryStream to list files which are present in specific
try (DirectoryStream<Path> stream = Files.newDirectoryStream(directory)) {
//with forEach loop get all the path of files present in directory
for (Path file : stream) {
System.out.println(file.getFileName());
}
}
}
}
|
输出:
程序说明:
- 在上面的程序中,我们在
directoryPath
变量中指定了目录的路径。 - 我们使用
Paths.get()
方法创建了 一个名为表示指定目录路径的Path
对象。directory
- 我们使用
Files.newDirectoryStream()
方法 为指定目录创建DirectoryStream
。