1. 程式人生 > >用java8實現6行程式碼搞定遞迴刪除多級非空目錄

用java8實現6行程式碼搞定遞迴刪除多級非空目錄

在review 程式碼的時候,看到同事寫的程式碼刪除多級非空目錄,寫的很長一串,太複雜,就自己寫了一個,分享給大家:

package com.test.java8;


import java.io.File;
import java.util.Arrays;
import java.util.Objects;

/**
 * @author KEVIN
 */
public interface FileUtil {

    static void main(String[] args) {


        File f = new File("D:\\mydir\\新建資料夾");
        System.out.println(f.getName());


        System.out.println("建立資料夾:" + createDirs("D:\\mydir\\新建資料夾"));

//        System.out.println("removed:" + remove(f));

    }

    /**
     * 遞迴刪除檔案(夾)
     *
     * @param file 待刪除的檔案(夾)
     * @return
     */

    static boolean remove(File file) {
        if (!file.exists()) {
            return false;
        }
        if (file.isFile()) {
            return file.delete();
        }
        Arrays.asList(file.listFiles()).forEach(FileUtil::remove);
        return file.delete();
    }

    /**
     * 建立多級目錄
     *
     * @param dirPath
     * @return
     */
    static boolean createDirs(String dirPath) {
        if (Objects.equals("", dirPath) || Objects.equals(null, dirPath)) {
            return false;
        }
        File file = new File(dirPath);
        if (file.exists()) {
            return true;
        }
        return file.mkdirs();
    }
}