代码如下:
import java.io.File; import java.util.Scanner; /** * * @Author juna3066 * @Date 2019/3/29 * */ public class Delete { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { System.out.println("input file:"); String input = sc.nextLine(); if ("wq".equals(input)) { System.out.println("break"); break; } File file = new File(input); deleteAll(file); System.out.println("delete ok!"); } } /** * 递归删除,先删除跟,后删除自己 * 注意的是f.delete()方法针对空文件夹可以直接删除,非空则不能 * * 这个和遍历出该目录下所有文件的代码差不多,只是在递归调用的后面多了一个删除。 * @param file */ private static void deleteAll(File file) { if(!file.exists()){ System.out.println("not exists..."); }else{ if(file.isFile()) { file.delete(); }else{ File[] files = file.listFiles(); for (File f : files) { deleteAll(f); } //这一点很重要 file.delete(); } } } }