JAVA實(shí)現(xiàn)將磁盤中所有空文件夾進(jìn)行刪除的代碼
更新時(shí)間:2017年06月18日 14:59:06 投稿:mdxy-dxy
這篇文章主要介紹了JAVA實(shí)現(xiàn)將磁盤中所有空文件夾進(jìn)行刪除的代碼,需要的朋友可以參考下
實(shí)現(xiàn)代碼一、
import java.io.File; import java.io.*; public class DelNullDir { public void ShowDir(File f){ for (File f1:f.listFiles()){ if(f1.isDirectory()){ ShowDir(f1); //一直遞歸到最后的目錄 if(f1.listFiles().length==0){ //如果是文件夾里面沒有文件證明是空文件,進(jìn)行刪除 f1.delete(); } } } } /** * * 把磁盤中所有空的文件夾進(jìn)行刪除 */ public static void main(String[] args) { File f = new File("F:\\360CloudUI\\"); new DelNullDir().ShowDir(f); } }
實(shí)現(xiàn)代碼二、
import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.Date; /** * Description:遞歸方式,掃描并刪除磁盤中的空文件夾 *(C盤中的一些空文件夾是系統(tǒng)文件夾,刪除多次后空文件夾數(shù)量不變,則停止此程序) * */ public class DelEmptyFolders { //空文件夾的絕對(duì)路徑 private static StringBuffer paths; //本次掃描的空文件夾的數(shù)量 private static int cnt; public static void main(String[] args) { boolean flag = true; do{ cnt = 0; paths = new StringBuffer(); long start = new Date().getTime(); System.out.println("正在掃描......"); //要掃描的磁盤 File disk = new File("C:/"); //日志文件的位置 File log = new File("D:/scanLog_C.txt"); try { //掃描磁盤 scanEmptyFolders(disk); //空文件夾數(shù)大于0時(shí),將文件夾的絕對(duì)路徑記錄到日志中并再掃描一次;否則停止掃描 if(cnt > 0){ fileWrite(paths.toString(), log); }else{ flag = false; } } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e2) { e2.printStackTrace(); } long end = new Date().getTime(); System.out.println("本次掃描完畢,耗時(shí):"+(end-start)/1000+" 秒,共刪除:"+cnt+" 個(gè)空文件夾!\n"); }while(flag); } /** * TODO:遞歸掃描空文件夾 * @throws UnsupportedEncodingException * */ private static void scanEmptyFolders(File file) throws UnsupportedEncodingException{ if(file != null && file.isDirectory()){ File[] files = file.listFiles(); //非空文件夾 if(files != null){ if(files.length > 0){ for (File temp : files) { scanEmptyFolders(temp); } }else{ System.out.println(file.getAbsolutePath()); //記錄日志 paths.append(new String((file.getAbsolutePath()+"\r\n").getBytes(),"UTF-8")); cnt++; //刪除空文件夾 file.delete(); } } } } /** * TODO:將字符串寫入文本文件 * @throws IOException * */ private static void fileWrite(String info,File file) throws IOException{ FileOutputStream fos = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(fos); bos.write(info.getBytes()); bos.flush(); bos.close(); fos.close(); } }
以上就是JAVA刪除空文件夾的實(shí)現(xiàn)代碼,需要的朋友可以參考一下。
您可能感興趣的文章:
- java刪除文件和文件夾具體實(shí)現(xiàn)
- java刪除文件夾下所有文件示例分享
- Java實(shí)現(xiàn)ftp上傳下載、刪除文件及在ftp服務(wù)器上傳文件夾的方法
- java實(shí)現(xiàn)讀取、刪除文件夾下的文件
- java刪除指定目錄下所有空文件夾的方法
- java 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實(shí)例
- Java刪除指定文件夾下的所有內(nèi)容的方法(包括此文件夾)
- Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能示例
- Java如何通過File類方法刪除指定文件夾中的全部文件
- Java實(shí)現(xiàn)文件夾中內(nèi)容定時(shí)刪除
相關(guān)文章
JXLS根據(jù)模板導(dǎo)出Excel實(shí)例教程
這篇文章主要為大家詳細(xì)介紹了JXLS根據(jù)模板導(dǎo)出Excel實(shí)例教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12springboot利用aspose預(yù)覽office文件的實(shí)現(xiàn)過程
這篇文章主要給大家介紹了關(guān)于springboot利用aspose預(yù)覽office文件的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考價(jià)值,需要的朋友可以參考下2021-06-06Java實(shí)戰(zhàn)項(xiàng)目練習(xí)之球館在線預(yù)約系統(tǒng)的實(shí)現(xiàn)
理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SpringBoot+maven+freemark+Mysql實(shí)現(xiàn)一個(gè)球館在線預(yù)約系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2022-01-01SpringBoot的配置文件application.yml及加載順序詳解
這篇文章主要介紹了SpringBoot的配置文件application.yml及加載順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Java發(fā)送http請(qǐng)求調(diào)用第三方接口獲取token方式
這篇文章主要介紹了Java發(fā)送http請(qǐng)求調(diào)用第三方接口獲取token方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07