Java非遞歸實現(xiàn)刪除任意目錄的方法
最近在學(xué)C#的文件系統(tǒng), 發(fā)現(xiàn)C#的文件系統(tǒng)貌似比java的東西少一點, 居然連刪除目錄都直接做好封裝了, 想到學(xué)java的時候還要自己寫遞歸刪除, 好像沒寫過非遞歸的,就在網(wǎng)上查了下, 關(guān)于非遞歸刪除目錄代碼沒幾個, 我就寫了一個,遞歸網(wǎng)上一大堆, 就不粘上來了. 下面是代碼非遞歸的方法:
package demo1;
import java.io.File;
import java.util.ArrayList;
public class Demo1 {
/**
* 不使用遞歸刪除目錄
* @param args
*/
public static void main(String[] args) {
deleteDirectory("E:\\test");
}
public static void deleteDirectory(String rootPath) {
//fileList模擬的是一個隊列
ArrayList<File> fileList = new ArrayList<File>();//存儲文件和直接子目錄包含文件的目錄
//directoryList模擬的是一個棧
ArrayList<File> directoryList = new ArrayList<File>();//存儲直接子目錄不包含文件的目錄
File root = new File(rootPath);
if(!root.exists()){
System.out.println("您輸入的不是目錄");
return;
}
if(root.isFile()){
root.delete();
System.out.println("您輸入的是文件,已刪除成功");
return;
}
fileList.add(0, root);//第一次入隊列
while(fileList.size() > 0) {
File dir = fileList.remove(0);//模擬一個出隊列的過程
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
if(files[i].isFile()) files[i].delete();
else fileList.add(files[i]);//模擬一個入隊列的過程
}
directoryList.add(dir);//模擬一個壓棧的過程
}
//倒序遍歷,模擬一個彈粘的過程
for (int i = directoryList.size() - 1; i >= 0; i--) {
directoryList.get(i).delete();
}
if(!root.exists()){
System.out.println("您輸入的是文件夾,已刪除成功");
}
}
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java讀取cvs文件并導(dǎo)入數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了java讀取cvs文件并導(dǎo)入數(shù)據(jù)庫,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08
基于spring?data?jpa?@query返回map的踩坑記錄
這篇文章主要介紹了基于spring?data?jpa?@query返回map的踩坑記錄,具有很好的參考價值,如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringMVC MVC架構(gòu)與Servlet使用詳解
MVC設(shè)計模式一般指 MVC 框架,M(Model)指數(shù)據(jù)模型層,V(View)指視圖層,C(Controller)指控制層。使用 MVC 的目的是將 M 和 V 的實現(xiàn)代碼分離,使同一個程序可以有不同的表現(xiàn)形式。其中,View 的定義比較清晰,就是用戶界面2022-10-10
java后臺實現(xiàn)支付寶支付接口和支付寶訂單查詢接口(前端為APP)
這篇文章主要介紹了java后臺實現(xiàn)支付寶支付接口和支付寶訂單查詢接口(前端為APP),非常具有實用價值,需要的朋友可以參考下2018-08-08
SpringBoot中分頁插件PageHelper的使用詳解
分頁查詢是為了高效展示大量數(shù)據(jù),通過分頁將數(shù)據(jù)劃分為多個部分逐頁展示,原生方法需手動計算數(shù)據(jù)起始行,而使用PageHelper插件則簡化這一過程,本文給大家介紹SpringBoot中分頁插件PageHelper的使用,感興趣的朋友一起看看吧2024-09-09

