一、遞歸刪除某路徑及路徑下全部文件java
爲了作人臉識別,從網上下載了不少人臉樣本,麻州大學計算機視覺實驗室的數據,可是裏邊有不少單個照片的樣本,不能使用,寫個java小方法,刪除小於十個圖像的樣本。spa
大神博客收集的公開人臉數據code
public static void main(String[] args) { //Labeled Faces in the Wild //麻州大學計算機視覺實驗室的數據--一共5千多人,按人名分文件夾放,大部分只有一張照片 //刪除小於10個圖片的文件夾 String Path = "C:\\Users\\Administrator\\Desktop\\lfw\\lfw"; File afile = new File(Path); File [] bfilelist = afile.listFiles(); for(File cfile : bfilelist){ File [] dfilelist = cfile.listFiles(); if(dfilelist.length < 10){ deleteDir(cfile); } } //該方法也適用於刪除單個文件 deleteDir(new File("C:\\Users\\Administrator\\Desktop\\新建文本文檔.txt")); } /** * 遞歸刪除目錄下的全部文件及子目錄下全部文件 * @param dir 將要刪除的文件目錄 * @return boolean */ private static boolean deleteDir(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); //遞歸刪除目錄中的子目錄下 for (int i=0; i<children.length; i++) { boolean success = deleteDir(new File(dir, children[i])); if (!success) { return false; } } } System.out.println("刪除"+dir.getAbsolutePath()+"成功"); // 目錄此時爲空,能夠刪除 return dir.delete(); }