import java.io.File;
import java.util.Scanner;
/**
* Created with IntelliJ IDEA.
* Description:
* User: 86180
* Date: 2024-01-20
* Time: 19:36
*/
//扫描目录,扫描含有目的内容,询问是否删除
public class Demo13 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//1.输入一个要扫描的目录
System.out.println("请输入要扫描的路径: ");
String path = scanner.next();
File rootPath = new File(path);
if(!rootPath.isDirectory()){
System.out.println("您输入的路径有误!!");
return;
}
//2.输入查询的关键词
System.out.println("请输入查询的关键词:");
String word = scanner.next();
//3.针对这个关键词开始扫描
scanDir(rootPath,word);
}
private static void scanDir(File rootPath,String word){
//1.列出rootPath下所有文件和目录
File[] files = rootPath.listFiles();
if (files==null){
//当前目录为null,直接返回
return;
}
//2.遍历
for (File file: files) {
//添加日志
System.out.println("当前扫描文件:"+file.getAbsoluteFile());//???
if(file.isFile()){
//询问
checkDelete(file,word);
}else {
//递归
//scanDir(file,word);
}
}
}
private static void checkDelete(File file,String word){
if(!file.getName().contains(word)){
//不是目标文件,不用管
System.out.println("不是目标文件");
return;
}
//删除
System.out.println("当前文件为:" + file.getAbsoluteFile()+"是否删除:");
Scanner scanner = new Scanner(System.in);
String choice = scanner.next();
if(choice.equals("Y")||choice.equals("y")){
file.delete();
System.out.println("删除完毕");
}else {
//用户输入啥都删除
System.out.println("取消删除");
}
}
}
代码结果:
请输入要扫描的路径:
c:
请输入查询的关键词:
test
当前扫描文件:c:\\$Recycle.Bin
当前扫描文件:c:\\$SysReset
当前扫描文件:c:\\$WinREAgent
当前扫描文件:c:\\Documents and Settings
当前扫描文件:c:\\Dtools
当前扫描文件:c:\\DumpStack.log.tmp
不是目目标文件
当前扫描文件:c:\\hiberfil.sys
不是目目标文件
当前扫描文件:c:\\hp
当前扫描文件:c:\\Intel
当前扫描文件:c:\\Microsoft
当前扫描文件:c:\\mingw64
当前扫描文件:c:\\PerfLogs
当前扫描文件:c:\\Program Files
当前扫描文件:c:\\Program Files (x86)
当前扫描文件:c:\\ProgramData
当前扫描文件:c:\\Recovery
当前扫描文件:c:\\SolidWorks_Flexnet_Server
当前扫描文件:c:\\swapfile.sys
不是目目标文件
当前扫描文件:c:\\System Volume Information
当前扫描文件:c:\\System.sav
当前扫描文件:c:\\test.text
当前文件为:c:\\test.text是否删除:
y
删除完毕
当前扫描文件:c:\\test.txt
当前文件为:c:\\test.txt是否删除:
y
删除完毕
当前扫描文件:c:\\Test3
当前扫描文件:c:\\Users
当前扫描文件:c:\\Windows
当前扫描文件:c:\\书籍
当前扫描文件:c:\\新建文件夹
当前扫描文件:c:\\程序代码
当前扫描文件:c:\\面试Process finished with exit code 0