java键盘录入一个文件夹路径和一个文件名,当前目录(包含子目录)下是否有该文件,有则返回该文件的绝对路径,没有则返回null。
时间: 2024-02-18 16:04:24 浏览: 125
可以使用递归来遍历文件夹中的所有文件和子文件夹,并查找指定的文件名。以下是一个示例代码:
```java
import java.io.File;
public class FileFinder {
public static void main(String[] args) {
// 读取用户输入的文件夹路径和文件名
System.out.print("请输入文件夹路径:");
String path = System.console().readLine();
System.out.print("请输入文件名:");
String fileName = System.console().readLine();
// 查找指定文件
File folder = new File(path);
String filePath = findFile(folder, fileName);
// 输出查找结果
if (filePath != null) {
System.out.println("找到文件:" + filePath);
} else {
System.out.println("未找到文件:" + fileName);
}
}
public static String findFile(File folder, String fileName) {
if (folder.isDirectory()) {
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
String filePath = findFile(file, fileName);
if (filePath != null) {
return filePath;
}
} else if (file.getName().equals(fileName)) {
return file.getAbsolutePath();
}
}
}
}
return null;
}
}
```
在上面的代码中,我们首先读取用户输入的文件夹路径和文件名,然后使用 `File` 类来创建一个文件夹实例,并调用 `findFile()` 方法来查找指定的文件。在 `findFile()` 方法中,我们首先判断当前文件是否是一个文件夹,如果是,则遍历当前文件夹中的所有文件和子文件夹,递归调用 `findFile()` 方法来查找指定的文件名。如果当前文件是一个文件夹,则将查找结果返回给调用者;如果当前文件是一个文件,那么我们就比较文件名是否与指定的文件名相同,如果相同,则将文件的绝对路径返回给调用者。最后,在主方法中输出查找结果。
注意:上述代码并没有处理异常情况,如输入的路径不存在或者无法访问等情况。在实际开发中,还需要对这些异常情况进行适当的处理。
阅读全文