欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間: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.

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

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

搞定了這個(gè)工具方法和單元測試

/**
 * 先根遍歷序遞歸刪除文件夾
 *
 * @param dirFile 要被刪除的文件或者目錄
 * @return 刪除成功返回true, 否則返回false
 */
public static boolean deleteFile(File dirFile) {
    // 如果dir對(duì)應(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)時(shí)間。于是我開始查guava和commons-io的工具類。

在commons-io包里找到了一個(gè)能達(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.

意即,遞歸的刪除一個(gè)目錄。

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

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

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

總結(jié)

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

相關(guān)文章

  • spring boot security設(shè)置忽略地址不生效的解決

    spring boot security設(shè)置忽略地址不生效的解決

    這篇文章主要介紹了spring boot security設(shè)置忽略地址不生效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 使用ProGuard混淆JavaWeb項(xiàng)目代碼的操作步驟

    使用ProGuard混淆JavaWeb項(xiàng)目代碼的操作步驟

    在開發(fā)JavaWeb應(yīng)用時(shí),為了保護(hù)源代碼不被輕易反編譯和閱讀,通常會(huì)采用代碼混淆技術(shù),ProGuard是一個(gè)廣泛使用的免費(fèi)工具,可以用來優(yōu)化、縮小和混淆Java字節(jié)碼,本文將詳細(xì)介紹如何使用ProGuard對(duì)JavaWeb項(xiàng)目進(jìn)行代碼混淆,需要的朋友可以參考下
    2025-05-05
  • Java 基礎(chǔ)--Arrays工具類詳解

    Java 基礎(chǔ)--Arrays工具類詳解

    這篇文章主要介紹了Java Arrays工具類用法,結(jié)合實(shí)例形式分析了java Arrays工具類針對(duì)數(shù)組元素修改、復(fù)制、排序等操作使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2021-09-09
  • IDEA強(qiáng)制清除Maven緩存的實(shí)現(xiàn)示例

    IDEA強(qiáng)制清除Maven緩存的實(shí)現(xiàn)示例

    清除項(xiàng)目緩存是一個(gè)常見的操作,本文主要介紹了IDEA強(qiáng)制清除Maven緩存的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • 通過Java實(shí)現(xiàn)獲取表的自增主鍵值

    通過Java實(shí)現(xiàn)獲取表的自增主鍵值

    這篇文章主要為大家詳細(xì)介紹了如何通過Java實(shí)現(xiàn)獲取表的自增主鍵值,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下
    2023-06-06
  • Spring中初始化泛型類的方法實(shí)例

    Spring中初始化泛型類的方法實(shí)例

    這篇文章主要給大家介紹了Spring中如何初始化泛型類,文中給出詳細(xì)的介紹和方法實(shí)例,對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-01-01
  • SpringBoot指標(biāo)監(jiān)控功能實(shí)現(xiàn)

    SpringBoot指標(biāo)監(jiān)控功能實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot指標(biāo)監(jiān)控功能實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • JAVA Integer類型自加實(shí)例詳解

    JAVA Integer類型自加實(shí)例詳解

    這篇文章主要介紹了JAVA Integer類型自加實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 淺談一下Java中的訪問修飾符以及作用

    淺談一下Java中的訪問修飾符以及作用

    這篇文章主要介紹了淺談一下Java中的訪問修飾符以及作用,修飾符修飾的是“被訪問”的權(quán)限,所有修飾符都可以修飾成員變量,方法,構(gòu)造方法,需要的朋友可以參考下
    2023-05-05
  • Java基礎(chǔ)教程之對(duì)象引用

    Java基礎(chǔ)教程之對(duì)象引用

    這篇文章主要介紹了Java基礎(chǔ)教程之對(duì)象引用,“對(duì)象引用”(object reference)是一個(gè)重要重要概念,涉及內(nèi)存,需要的朋友可以參考下
    2014-09-09

最新評(píng)論