📅  最后修改于: 2023-12-03 15:02:06.189000             🧑  作者: Mango
在Java中,我们可以通过文件类(File class)来获取目录中存在的所有文件。下面是一个示例代码,它可以返回目录中的所有文件的路径。
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class DirectoryScanner {
/**
* 获取指定目录下的所有文件路径
* @param directoryPath 要扫描的目录路径
* @param extensions 要扫描的文件扩展名,如".txt", ".jpg"
* @return 目录中所有文件的路径
*/
public static List<String> scanDirectory(String directoryPath, String[] extensions) {
List<String> fileList = new ArrayList<>();
File directory = new File(directoryPath);
if (!directory.isDirectory()) {
System.err.println(String.format("%s不是一个有效的目录", directoryPath));
return fileList;
}
File[] files = directory.listFiles();
for (File file : files) {
if (file.isFile()
&& containsExtension(file.getName(), extensions)) {
fileList.add(file.getAbsolutePath());
}
}
return fileList;
}
/**
* 判断文件名称是否包含指定扩展名
* @param fileName 文件名
* @param extensions 要扫描的文件扩展名,如".txt", ".jpg"
* @return True:包含指定扩展名 False:不包含指定扩展名
*/
private static boolean containsExtension(String fileName, String[] extensions) {
for (String extension : extensions) {
if (fileName.endsWith(extension)) {
return true;
}
}
return false;
}
// 示例
public static void main(String[] args) {
String directoryPath = "D:\\example";
String[] extensions = new String[]{".txt", ".jpg"};
List<String> fileList = scanDirectory(directoryPath, extensions);
System.out.println("指定目录中的所有文件:");
for (String filePath : fileList) {
System.out.println(filePath);
}
}
}
在这个示例代码中,我们使用了java.io.File
类来获取目录中的所有文件。我们使用了listFiles()
方法列出目录中所有的子项(包括目录和文件),并使用isFile()
方法判断是否是文件,如果是文件,则判断文件名称是否包含指定的扩展名,如果包含则将其全路径添加到一个列表中,并返回最终的列表。
同时,我们也提供了一个containsExtension()
方法,用于判断文件名是否包含指定的扩展名。这样我们可以通过指定不同的扩展名来筛选出目录中存在的特定类型的文件。
程序的使用方式非常简单,只需要提供要扫描的目录路径和要过滤的文件扩展名即可。可以根据自己的需求,修改scanDirectory()
方法中的参数,来满足不同的使用场景。