在工做開發過程當中,每次用SVN提交代碼全選擇的時候,發現會產生不少不須要的文件後綴垃圾文件,感受挺煩人的,一個一個刪太麻煩了,若是產生多種後綴文件時,那刪起來多費勁,是吧?想一想,就寫了一段程序經過遞歸進行處理,雖然網上有不少這樣的代碼,可是我感受都有問題,網上的代碼不少都須要拿過來執行一下才知道有沒有問題,若是是多層目錄結構的時候,會把你的相同文件名稱也幹掉,而我寫的這個即便是須要刪除的文件後綴名稱跟文件名同樣都不會刪掉。每次提交以前我都執行一下再提交,這樣就不會有哪些不須要的後綴文件了。這個仍是比較實用,分享給你們,但願能讓更多的人,提升開發效率。html
package test; import java.io.File; import java.util.ArrayList; import java.util.List; public class SweepUnusedFiles { public static void main(String[] args) { String filedir = "F:\\某個目錄下"; List<String> suffixList = new ArrayList<String>(); suffixList.add(".db"); // suffixList.add(".tmp"); // suffixList.add(".html_zh"); // suffixList.add("_zh.js"); SweepUnusedFiles sweepUnusedFiles = new SweepUnusedFiles(); sweepUnusedFiles.startDeleteFixedFiles(filedir, suffixList); System.out.println("執行完成!"); } public void startDeleteFixedFiles(String filedir, List<String> suffixList) { if (null == filedir || "".equals(filedir.trim())) { System.out.println("filedir 目錄不對!"); return; } filedir = filedir.trim(); if (null == suffixList || suffixList.size() <= 0) { System.out.println("suffixList 沒有要匹配的後綴!"); return; } File f = new File(filedir); if (f.isDirectory()) { handleFile(f, suffixList); } else { System.out.println("filedir 必須爲目錄"); /* for (String suffix : suffixList) { if (f.getName().endsWith(suffix)) { // 匹配到的要刪除 try { f.delete(); } * catch (Exception e) { System.out.println("文件刪除失敗:" + f.getAbsolutePath() + "\\" + f.getName()); } } } */ } } private void handleFile(File filedir, List<String> suffixList) { // 目錄 File[] files = filedir.listFiles(); for (File subFile : files) { if (subFile.isDirectory()) { handleFile(subFile, suffixList); } else { // 文件 for (String suffix : suffixList) { if (subFile.getName().endsWith(suffix)) { // 匹配到的要刪除 try { subFile.delete(); System.out.println("已刪除文件:" + subFile.getAbsolutePath() + "\\" + subFile.getName()); } catch (Exception e) { System.out.println("文件刪除失敗:" + subFile.getAbsolutePath() + "\\" + subFile.getName()); } } } } } } }
ps: 請看效果java