删除文件夹,包括其下面所有内容

代码如下:

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 name:(input 'wq' to exit!)");
            String input = sc.nextLine();
            if ("wq".equals(input)) {
                System.out.println("break");
                break;
            }
            File file = new File(input);
            if(!file.exists()){
                //调用删除前判断是否存在file。
                //这是判断files是文件或者文件夹的前提
                System.out.println("not exists...");
            }else{
                deleteAll(file);
                System.out.println("delete ok!");
            }
            System.out.println("----------------------------------------");
        }
    }

    /**
     * 递归删除,先删除跟,后删除自己
     * 注意的是f.delete()方法针对空文件夹可以直接删除,非空则不能
     *
     * 这个和遍历出该目录下所有文件的代码差不多,只是在递归调用的后面多了一个删除。
     * @param file
     */
    private static void deleteAll(File file) {
        if(file.isFile()) {
            //删除文件
            System.out.println(file.getName()+"file delete ok!");
            file.delete();
        }else{
            File[] files = file.listFiles();
            for (File f : files) {
                //递归删除,文件夹下的文件都删除干净
                deleteAll(f);
            }
            //这一点很重要,然后删除这个文件
            System.out.println(file.getName()+"directory delete ok!!");
            file.delete();
        }
    }
}

  

  

原文地址:https://www.cnblogs.com/juna3066/p/10624167.html