用户输入文件目录和文件扩展名。应用java.io.File类,列出指定目录下符合条件的文件,不区分大小写,如果文件扩展名,用户输入为空或者“*.*”则列出全部文件
时间: 2024-09-10 19:25:26 浏览: 43
使用Java的`java.io.File`类来列出指定目录下符合特定文件扩展名的文件,可以通过递归或迭代的方式来遍历文件系统。以下是一个简单的示例代码,展示了如何实现这个功能:
```java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileLister {
public static void main(String[] args) {
// 假设目录和扩展名是用户输入的
String directoryPath = "C:/example/directory"; // 用户指定的目录路径
String extension = ".txt"; // 用户指定的文件扩展名,如果为空或"*.*",则为null
List<File> fileList = listFilesWithExtension(directoryPath, extension);
// 打印找到的文件列表
for (File file : fileList) {
System.out.println(file.getAbsolutePath());
}
}
public static List<File> listFilesWithExtension(String directoryPath, String extension) {
File directory = new File(directoryPath);
List<File> resultList = new ArrayList<>();
// 检查目录是否存在且是一个目录
if (directory.exists() && directory.isDirectory()) {
File[] files = directory.listFiles();
// 如果extension为null或"*.*",列出所有文件
if (extension == null || extension.equalsIgnoreCase("*.*")) {
for (File file : files) {
if (file.isFile()) {
resultList.add(file);
}
}
} else {
// 否则,检查文件扩展名是否符合条件(不区分大小写)
for (File file : files) {
if (file.isFile() && file.getName().toLowerCase().endsWith(extension.toLowerCase())) {
resultList.add(file);
}
}
}
}
return resultList;
}
}
```
在这个示例代码中,`listFilesWithExtension`方法接受两个参数:目录路径和扩展名。如果扩展名为`null`或`"*.*"`,则列出目录下的所有文件。否则,方法会遍历目录中的每一个文件,检查文件名是否以指定的扩展名结束(不区分大小写)。符合条件的文件会被添加到一个`ArrayList`中并返回。
注意,在实际应用中,应当对输入的目录路径和扩展名进行适当的错误处理,例如检查目录路径是否有效,以及用户是否具有读取文件的权限。
阅读全文