1、递归删除某路径及路径下所有文件
为了做人脸识别,从网上下载了很多人脸样本,麻州大学计算机视觉实验室的数据,但是里边有很多单个照片的样本,不能使用,写个java小方法,删除小于十个图像的样本。
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(); }