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

代码如下:

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();
            }
        }
    }
}

  

猜你喜欢

转载自www.cnblogs.com/juna3066/p/10624167.html
今日推荐