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)文章
java中List數(shù)組用逗號分隔開轉(zhuǎn)成字符串2種方法
在我們?nèi)粘i_發(fā)中,在前后端交互的時候會遇到多個id或其他字段存放到一個字段中,這時我們會遇到一個List(集合)---->String(單個字段),這篇文章主要給大家介紹了關(guān)于java中List數(shù)組用逗號分隔開轉(zhuǎn)成字符串的2種方法,需要的朋友可以參考下2023-10-10
使用GSON庫將Java中的map鍵值對應(yīng)結(jié)構(gòu)對象轉(zhuǎn)換為JSON
GSON是由Google開發(fā)并開源的實現(xiàn)Java對象與JSON之間相互轉(zhuǎn)換功能的類庫,這里我們來看一下使用GSON庫將Java中的map鍵值對應(yīng)結(jié)構(gòu)對象轉(zhuǎn)換為JSON的示例:2016-06-06
MyBatis-Plus代碼生成器(AutoGenerator)用法及說明
MyBatis-Plus代碼生成器AutoGenerator是MyBatis-Plus提供提供的高效工具,能根據(jù)數(shù)據(jù)庫表結(jié)構(gòu)一鍵生成Entity、Mapper、MapperXML、Service和Controller代碼,大幅提高開發(fā)效率,本文詳細(xì)介紹了其依賴準(zhǔn)備、核心配置體系(重點介紹了FastD)和具體案例2026-05-05
使用SpringBoot找不到Mapper的Bean問題及解決
這篇文章主要介紹了使用SpringBoot找不到Mapper的Bean問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2026-04-04

