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

java如何刪除非空文件夾

 更新時間:2024年06月14日 10:29:44   作者:luffy5459  
這篇文章主要介紹了java如何刪除非空文件夾問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

java刪除非空文件夾

java中刪除文件和空文件夾很簡單,直接調(diào)用File api ,file.delete()就可以刪除文件或者空文件夾本身。

但是如果是非空文件夾,這個方法就會失敗,就像在linux下我們使用命令rm刪除非空文件夾一樣,它會提示文件夾不為空,我們需要加上-r參數(shù)強制遞歸刪除,才能將這個文件夾刪除。

java中刪除非空文件夾也類似,如果要刪除,必須要連帶文件夾中的內(nèi)容一起刪除,所以這里也需要遞歸刪除。

思路很簡單

因為我們刪除的是文件夾,所以這里先列出文件夾中的文件,如果是文件直接刪除,如果是文件夾,繼續(xù)遞歸調(diào)用刪除方法,最后還要將空文件夾本身刪除。

show me the code:

package com.xxx.oop;
import java.io.File;
public class Hello {
 
    public static void deleteDir(String path){
        File file = new File(path);
        File[] list = file.listFiles();
        for(File f:list){
            if(f.isDirectory()){
                deleteDir(f.getPath());
            }else{
                f.delete();
            }
        }
        boolean deleted = file.delete();
        System.out.println(deleted);
    }
 
    public static void main(String[] args) {
        String path = "C:\\Users\\buejee\\Desktop\\test";
        deleteDir(path);
    }
}

這個代碼本身沒有難度,就是一個簡單的遞歸調(diào)用,但是卻很管用。

這種方式,不管刪除空文件夾還是非空文件夾都好使。

遞歸刪除非空文件夾(目錄)

Java 對File類  提供了一個刪除文件 delete(); 的方法

但是這個方法只對 文件或者 空目錄有效,對非空目錄是無法進(jìn)行刪除的

這個時候我們要 刪除非空目錄 可能就會用到 遞歸的方法:

private static void delDirectory(File f) {
        //判斷是否目錄
        if (f.isDirectory()) {
            //是目錄,判斷是否有子文件
            if (f.listFiles().length>0) {
                for (File file : f.listFiles()) {
                    //有子文件再次調(diào)用本方法
                    delDirectory(file);
                }
            }else {
                //無子文件直接刪除
                f.delete();
            }
        }
        //刪除空目錄 或 文件
        f.delete();
    }

使用main方法調(diào)用:

public static void main(String[] args) {
        File f = new File("C:\\Users\\jacktu\\Desktop\\test");
        delDirectory(f);
    }

成功刪除桌面的 test 文件夾  --這里就不上圖了

總結(jié)

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

相關(guān)文章

  • 一文詳解Object類和抽象類

    一文詳解Object類和抽象類

    這篇文章主要介紹了一文詳解Object類和抽象類,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下。希望對你的學(xué)習(xí)有所幫助
    2022-08-08
  • java時間 java.util.Calendar深入分析

    java時間 java.util.Calendar深入分析

    這篇文章主要介紹了java時間 java.util.Calendar深入分析的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 基于Spring MVC 簡介及入門小例子(推薦)

    基于Spring MVC 簡介及入門小例子(推薦)

    下面小編就為大家?guī)硪黄赟pring MVC 簡介及入門小例子(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • mybatis模糊查詢之bind標(biāo)簽和concat函數(shù)用法詳解

    mybatis模糊查詢之bind標(biāo)簽和concat函數(shù)用法詳解

    大家都知道bind 標(biāo)簽可以使用 OGNL 表達(dá)式創(chuàng)建一個變量井將其綁定到上下文中,接下來通過本文給大家介紹了mybatis模糊查詢——bind標(biāo)簽和concat函數(shù)用法,需要的朋友可以參考下
    2022-08-08
  • JAVA像SQL一樣對List對象集合進(jìn)行排序

    JAVA像SQL一樣對List對象集合進(jìn)行排序

    這篇文章主要介紹了JAVA像SQL一樣對List對象集合進(jìn)行排序的實現(xiàn)方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Spring Boot Admin管理監(jiān)控數(shù)據(jù)的方法

    Spring Boot Admin管理監(jiān)控數(shù)據(jù)的方法

    本篇文章主要介紹了Spring Boot Admin管理監(jiān)控數(shù)據(jù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Spring數(shù)據(jù)源及配置文件數(shù)據(jù)加密實現(xiàn)過程詳解

    Spring數(shù)據(jù)源及配置文件數(shù)據(jù)加密實現(xiàn)過程詳解

    這篇文章主要介紹了Spring數(shù)據(jù)源及配置文件數(shù)據(jù)加密實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 深入學(xué)習(xí)Java 熱部署的知識

    深入學(xué)習(xí)Java 熱部署的知識

    對于Java應(yīng)用程序來說,熱部署就是在運行時更新Java類文件。在基于Java的應(yīng)用服務(wù)器實現(xiàn)熱部署的過程中,類裝入器扮演著重要的角色。大多數(shù)基于Java的應(yīng)用服務(wù)器,包括EJB服務(wù)器和Servlet容器,都支持熱部署。,需要的朋友可以參考下
    2019-06-06
  • Mybatis如何通過注解開啟使用二級緩存

    Mybatis如何通過注解開啟使用二級緩存

    這篇文章主要介紹了Mybatis基于注解開啟使用二級緩存,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Spring @Bean注解配置及使用方法解析

    Spring @Bean注解配置及使用方法解析

    這篇文章主要介紹了Spring @Bean注解配置及使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04

最新評論