扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问用户是否要删除该文件
实现一个文件删除的小程序
package 文件IO;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
/**
* @Author
* @Date 2023/1/12 12:10
* 扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问用户是否要删除该文件
*/
public class 练习_删除文件 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入文件目录");
String rootDirPath = scanner.next();
System.out.println("请输入要删除的文件名");
String toDelateName = scanner.next();
File rootDir = new File(rootDirPath);
if(!rootDir.isDirectory()){
System.out.println("您输入的目录地址有误");
return;
}
scanDir(rootDir,toDelateName);
}
public static void scanDir(File rootDir,String toDelateName){
// 列出rootDir中都有哪些内容
File[] files = rootDir.listFiles();
if(files == null){
return;
}
for(File f : files){
// f是文件时
if(f.isFile()){
if(f.getName().contains(toDelateName)){
delateFile(f);
}
}else if(f.isDirectory()){
// 如果是目录,就继续遍历目录
scanDir(f,toDelateName);
}
}
}
public static void delateFile(File f){
try{
System.out.println(f.getCanonicalPath() + "确认要删除吗?(Y/n)");
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
if(s.equals("y") || s.equals("Y")){
f.delete();
}
}catch (IOException e){
e.printStackTrace();
}
}
}