java基礎File的簡單使用記錄

一、遞歸刪除某路徑及路徑下全部文件java

爲了作人臉識別,從網上下載了不少人臉樣本,麻州大學計算機視覺實驗室的數據,可是裏邊有不少單個照片的樣本,不能使用,寫個java小方法,刪除小於十個圖像的樣本。spa

麻州大學計算機視覺實驗室數據下載地址.net

大神博客收集的公開人臉數據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();        
    }
相關文章
相關標籤/搜索