递归删除文件
import java.io.File;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入需要删除的文件路径");
String s = scanner.nextLine();
//正则表达式
String regex="[a-zA-Z]:(((\\\\(?! )[^/:*?<>\\\"\"|\\\\]+)+\\\\?)|(\\\\)?)\\s*";
//根据正则匹配输入文件路径格式
if (s.matches(regex)){
File file=new File(s);//通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
deleteFile(file);//调用方法
}else {
System.out.println("格式错误");
}
}
private static void deleteFile(File file) {
if(file.exists()){//判断路径是否存在,存在则执行
File[] files = file.listFiles();//返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
for (File data: //遍历数组
files) {
if(data.isDirectory()){ //判断是否为目录
deleteFile(data);//递归调用
}else if(data.isFile()&&data.length()==0){//判断是否为文件且为空
data.delete();//删除
System.out.println(data.getPath()+"删除成功");
}
}
file.delete();//当所有为空时,删除目录
}else {
System.out.println("路径不存在");
}
}
}