最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java刪除文件夾的實(shí)現(xiàn)方式

 更新時間:2025年07月10日 08:47:50   作者:bruce128  
用戶發(fā)現(xiàn)File.delete()無法刪除非空目錄,嘗試自定義遞歸刪除方法后,發(fā)現(xiàn)commons-io已提供FileUtils.deleteDirectory,建議優(yōu)先使用第三方庫避免重復(fù)造輪子,提升效率與代碼可靠性

java刪除文件夾

先看File.delete()的方法api文檔

Deletes the file or directory denoted by this abstract pathname. If
this pathname denotes a directory, then the directory must be empty in
order to be deleted.

意即,刪除文件或者目錄,但是如果是目錄,則這個目錄必須是空的才能被刪除。也就是說,要刪一個非空文件夾,直接調(diào)delete方法是無法達(dá)到目的的。

看到這個api說明時,我的第一想法是,用 先根遍歷序遞歸刪除 文件夾。

搞定了這個工具方法和單元測試

/**
 * 先根遍歷序遞歸刪除文件夾
 *
 * @param dirFile 要被刪除的文件或者目錄
 * @return 刪除成功返回true, 否則返回false
 */
public static boolean deleteFile(File dirFile) {
    // 如果dir對應(yīng)的文件不存在,則退出
    if (!dirFile.exists()) {
        return false;
    }

    if (dirFile.isFile()) {
        return dirFile.delete();
    } else {

        for (File file : dirFile.listFiles()) {
            deleteFile(file);
        }
    }

    return dirFile.delete();
}

單元測試

@Test
public void delete() {
    File file = new File("/temp/lock11-1");
    ExcelDiskUtils.deleteFile(file);
}

功能是OK的。但是晚上回家想了想。這么基礎(chǔ)的工具方法,肯定有第三方工具類提供支持,自己再寫一遍是浪費(fèi)時間。于是我開始查guava和commons-io的工具類。

在commons-io包里找到了一個能達(dá)到同樣目的的方法org.apache.commons.io.FileUtils#deleteDirectory

    /**
     * Deletes a directory recursively.
     *
     * @param directory directory to delete
     * @throws IOException              in case deletion is unsuccessful
     * @throws IllegalArgumentException if {@code directory} does not exist or is not a directory
     */
    public static void deleteDirectory(final File directory) throws IOException {
        ... ...
    }

看方法的api說明

Deletes a directory recursively.

意即,遞歸的刪除一個目錄。

自己在寫一些常規(guī)的工具方法時,最好先看看commons包或者guava包有沒有提供,如果提供了,就用他們的。

不僅節(jié)約時間,提高效率,而且這些 頂尖高手寫的代碼的魯棒性 都很好。

沒必要重復(fù)造輪子,遇到定制需求,萬不得已再自己寫。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

定州市| 会东县| 长武县| 东至县| 成安县| 庆元县| 河东区| 香河县| 酉阳| 右玉县| 台东县| 溧阳市| 固始县| 开阳县| 山东省| 宜宾县| 丹棱县| 沈阳市| 茶陵县| 电白县| 郎溪县| 永善县| 通州市| 泊头市| 桃源县| 宁蒗| 墨竹工卡县| 新宾| 饶河县| 博兴县| 万盛区| 张掖市| 台南市| 平湖市| 丰都县| 隆德县| 铜陵市| 石台县| 宁强县| 巩义市| 万年县|