您好,登錄后才能下訂單哦!
實現代碼一、
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){ //如果是文件夾里面沒有文件證明是空文件,進行刪除 f1.delete(); } } } } /** * * 把磁盤中所有空的文件夾進行刪除 */ public static void main(String[] args) { File f = new File("F:\\360CloudUI\\"); new DelNullDir().ShowDir(f); } }
實現代碼二、
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盤中的一些空文件夾是系統文件夾,刪除多次后空文件夾數量不變,則停止此程序) * */ public class DelEmptyFolders { //空文件夾的絕對路徑 private static StringBuffer paths; //本次掃描的空文件夾的數量 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); //空文件夾數大于0時,將文件夾的絕對路徑記錄到日志中并再掃描一次;否則停止掃描 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("本次掃描完畢,耗時:"+(end-start)/1000+" 秒,共刪除:"+cnt+" 個空文件夾!\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刪除空文件夾的實現代碼,需要的朋友可以參考一下。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。