使用scanner类实现用户交互的文件夹下()文件名称打印。当用户输入1时,运行代码段一;当用户输入2时运行代码段二。实现制定目录下文件名称打印的递归算法。
时间: 2024-11-15 15:34:44 浏览: 6
在Java中,我们可以使用`Scanner`类来获取用户的输入,并结合递归算法来实现指定目录下的文件名打印。首先,需要创建一个`main`函数,然后实例化一个`Scanner`对象。接下来,我们设计两个代码段(代码段一和代码段二),分别对应用户输入1和2的情况:
```java
import java.io.File;
import java.util.Scanner;
public class FileManager {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请选择操作:");
System.out.println("1. 打印当前目录下的文件");
System.out.println("2. 递归打印指定目录下的所有文件");
int choice = scanner.nextInt();
switch (choice) {
case 1:
printCurrentDirectoryFiles();
break;
case 2:
String directoryPath = scanner.nextLine(); // 获取用户输入的目录路径
printRecursive(directoryPath);
break;
default:
System.out.println("无效的选择,请重新运行程序并输入1或2.");
break;
}
scanner.close();
}
// 代码段一:打印当前目录下的文件
private static void printCurrentDirectoryFiles() {
File currentDir = new File(".");
File[] files = currentDir.listFiles();
if (files != null) {
for (File file : files) {
if (file.isFile()) {
System.out.println(file.getName());
}
}
} else {
System.out.println("当前目录为空.");
}
}
// 代码段二:递归打印指定目录下的所有文件
private static void printRecursive(String directoryPath) {
File dir = new File(directoryPath);
if (dir.exists() && dir.isDirectory()) {
File[] files = dir.listFiles();
if (files != null) {
for (File file : files) {
if (file.isFile()) {
System.out.println(file.getName());
} else if (file.isDirectory()) {
printRecursive(file.getAbsolutePath());
}
}
} else {
System.out.println("指定目录为空或不存在.");
}
} else {
System.out.println("无法访问指定的目录.");
}
}
阅读全文