Java编写 键盘录入一个文件夹路径和一个文件名,当前目录(包含子目录)下是否有该文件,有则返回该文件的绝对路径,没有则返回null。
时间: 2024-01-14 22:02:26 浏览: 25
好的,以下是一个Java程序,可以实现你的要求:
```java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class SearchFile {
public static void main(String[] args) {
// 读取文件夹路径和文件名
System.out.print("请输入文件夹路径:");
String path = System.console().readLine();
System.out.print("请输入文件名:");
String fileName = System.console().readLine();
// 查找文件
List<String> filePaths = searchFile(new File(path), fileName);
// 输出结果
if (filePaths.isEmpty()) {
System.out.println("没有找到文件:" + fileName);
} else {
for (String filePath : filePaths) {
System.out.println("找到文件:" + filePath);
}
}
}
private static List<String> searchFile(File folder, String fileName) {
List<String> filePaths = new ArrayList<>();
if (folder.isDirectory()) {
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
filePaths.addAll(searchFile(file, fileName));
} else {
if (file.getName().equals(fileName)) {
filePaths.add(file.getAbsolutePath());
}
}
}
}
}
return filePaths;
}
}
```
你只需要在命令行中编译并运行上述代码即可。注意:代码中使用了递归的方式来遍历文件夹和子文件夹,如果文件夹层级很深,可能会导致栈溢出。如果你需要处理大量的文件和文件夹,建议使用非递归的方式来实现。