Java非遞歸實(shí)現(xiàn)刪除任意目錄的方法
最近在學(xué)C#的文件系統(tǒng), 發(fā)現(xiàn)C#的文件系統(tǒng)貌似比java的東西少一點(diǎn), 居然連刪除目錄都直接做好封裝了, 想到學(xué)java的時(shí)候還要自己寫遞歸刪除, 好像沒寫過非遞歸的,就在網(wǎng)上查了下, 關(guān)于非遞歸刪除目錄代碼沒幾個(gè), 我就寫了一個(gè),遞歸網(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模擬的是一個(gè)隊(duì)列 ArrayList<File> fileList = new ArrayList<File>();//存儲(chǔ)文件和直接子目錄包含文件的目錄 //directoryList模擬的是一個(gè)棧 ArrayList<File> directoryList = new ArrayList<File>();//存儲(chǔ)直接子目錄不包含文件的目錄 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);//第一次入隊(duì)列 while(fileList.size() > 0) { File dir = fileList.remove(0);//模擬一個(gè)出隊(duì)列的過程 File[] files = dir.listFiles(); for (int i = 0; i < files.length; i++) { if(files[i].isFile()) files[i].delete(); else fileList.add(files[i]);//模擬一個(gè)入隊(duì)列的過程 } directoryList.add(dir);//模擬一個(gè)壓棧的過程 } //倒序遍歷,模擬一個(gè)彈粘的過程 for (int i = directoryList.size() - 1; i >= 0; i--) { directoryList.get(i).delete(); } if(!root.exists()){ System.out.println("您輸入的是文件夾,已刪除成功"); } } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java基于循環(huán)遞歸回溯實(shí)現(xiàn)八皇后問題算法示例
- Java遞歸讀取文件例子_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 全排列算法-遞歸與字典序的實(shí)現(xiàn)方法(Java)
- Java遞歸算法詳解(動(dòng)力節(jié)點(diǎn)整理)
- java高效打印一個(gè)二維數(shù)組的實(shí)例(不用遞歸,不用兩個(gè)for循環(huán))
- Java遞歸方法求5!的實(shí)現(xiàn)代碼
- Java遞歸算法經(jīng)典實(shí)例(經(jīng)典兔子問題)
- Java使用遞歸解決算法問題的實(shí)例講解
- Java遞歸遍歷樹形結(jié)構(gòu)的實(shí)現(xiàn)代碼
- Java 跳出遞歸循環(huán)問題解決辦法
相關(guān)文章
Spring?Boot?多數(shù)據(jù)源處理事務(wù)的思路詳解
這篇文章主要介紹了Spring?Boot?多數(shù)據(jù)源如何處理事務(wù),本文單純就是技術(shù)探討,要從實(shí)際應(yīng)用中來說的話,我并不建議這樣去玩分布式事務(wù)、也不建議這樣去玩多數(shù)據(jù)源,畢竟分布式事務(wù)主要還是用在微服務(wù)場(chǎng)景下,對(duì)Spring?Boot?多數(shù)據(jù)源事務(wù)相關(guān)知識(shí)感興趣的朋友參考下本文2022-06-06Maven項(xiàng)src/main/java目錄下配置文件無法被導(dǎo)出或者生效的問題和處理方案
這篇文章主要介紹了Maven項(xiàng)src/main/java目錄下配置文件無法被導(dǎo)出或者生效的問題和處理方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11java對(duì)同一個(gè)文件進(jìn)行讀寫操作方法
在本篇文章里我們給大家詳細(xì)講述了java對(duì)同一個(gè)文件進(jìn)行讀寫操作的方法和知識(shí)點(diǎn),需要的朋友們可以參考學(xué)習(xí)下。2018-10-10Kotlin 語言中調(diào)用 JavaScript 方法實(shí)例詳解
這篇文章主要介紹了Kotlin 語言中調(diào)用 JavaScript 方法實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06