(1)用户输入指令 1,代表“按指定关键字检索文件”,此时需要用户输入检索的 目录和关键字,系统在用户指定的目录下检索出文件名中包含关键字的文件,并将其绝 对路径展示出来。 (2)用户输入指令 2,代表“按指定后缀名检索文件”,此时需要用户输入检索的 目录和后缀名(多个后缀名用逗号分隔),系统在用户指定的目录下检索出指定后缀名 的文件,并将其绝对路径展示出来。 (3)用户输入指令 3,代表“删除文件/目录”,此时需要用户输入要删除的文件或 目录,程序执行后会将指定文件或目录删除。 (4)用户输入指令 4,代表“退出”,即退出该系统。写一个main Java代码
时间: 2024-03-25 16:39:27 浏览: 163
以下是一个简单的实现:
```
import java.io.File;
import java.util.Scanner;
public class FileSearch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入指令:");
System.out.println("1. 按关键字检索文件");
System.out.println("2. 按后缀名检索文件");
System.out.println("3. 删除文件/目录");
System.out.println("4. 退出");
System.out.print("> ");
int command = scanner.nextInt();
switch (command) {
case 1:
searchByKeyword(scanner);
break;
case 2:
searchBySuffix(scanner);
break;
case 3:
deleteFile(scanner);
break;
case 4:
System.out.println("谢谢使用!");
return;
default:
System.out.println("未知指令,请重新输入!");
}
}
}
private static void searchByKeyword(Scanner scanner) {
System.out.print("请输入要检索的目录:");
String dirPath = scanner.next();
System.out.print("请输入关键字:");
String keyword = scanner.next();
File dir = new File(dirPath);
if (!dir.isDirectory()) {
System.out.println("输入的不是目录!");
return;
}
File[] files = dir.listFiles((dir1, name) -> name.contains(keyword));
if (files == null || files.length == 0) {
System.out.println("未找到包含关键字的文件!");
} else {
System.out.println("找到以下文件:");
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
}
}
private static void searchBySuffix(Scanner scanner) {
System.out.print("请输入要检索的目录:");
String dirPath = scanner.next();
System.out.print("请输入后缀名(多个后缀名用逗号分隔):");
String[] suffixes = scanner.next().split(",");
File dir = new File(dirPath);
if (!dir.isDirectory()) {
System.out.println("输入的不是目录!");
return;
}
File[] files = dir.listFiles((dir1, name) -> {
for (String suffix : suffixes) {
if (name.endsWith(suffix.trim())) {
return true;
}
}
return false;
});
if (files == null || files.length == 0) {
System.out.println("未找到指定后缀名的文件!");
} else {
System.out.println("找到以下文件:");
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
}
}
private static void deleteFile(Scanner scanner) {
System.out.print("请输入要删除的文件或目录:");
String path = scanner.next();
File file = new File(path);
if (!file.exists()) {
System.out.println("文件或目录不存在!");
return;
}
if (file.isFile()) {
if (file.delete()) {
System.out.println("文件删除成功!");
} else {
System.out.println("文件删除失败!");
}
} else {
deleteDirectory(file);
System.out.println("目录删除成功!");
}
}
private static void deleteDirectory(File dir) {
File[] files = dir.listFiles();
for (File file : files) {
if (file.isFile()) {
file.delete();
} else {
deleteDirectory(file);
}
}
dir.delete();
}
}
```
注意:这只是一个简单的实现,可能还存在一些问题,例如输入非法路径时会抛出异常等。在实际应用中,需要进一步完善和优化代码。
阅读全文