业务中遇到,记录一下
/**
* 删除指定目录下的空文件夹,不包括自身
*
* @param file 文件总目录 file
*/
public static void deleteFolder(File file) {
File[] files = file.listFiles();
if (files != null) {//如果包含文件进行删除操作
for (File value : files) {
if (value.isFile()) {
//删除子文件
value.delete();
} else if (value.isDirectory()) {
//通过递归的方法找到子目录的文件
deleteFolder(value);
}
value.delete();//删除子目录
}
}
}
当包含文件时不进行删除
/**
* 删除指定目录下的空文件夹,不包括自身目录
*/
public boolean deleteEmptyFolder(String srcPath) {
File file = new File(srcPath);
List<String> fileList = getFiles(new ArrayList<String>(), file);
//log.info(fileList.size() + "------------" + file.getName());
if (fileList.size() == 0) {
deleteFolder(file);
return true;
} else {
log.info("[(" + file.getName() + ")有文件存在,不进行删除]");
return false;
}
}
运行
public static void main(String[] args) {
File file =new File("D:\\test")
deleteEmptyFolder(file) ? "[空文件夹删除成功!!]" : "[删除失败!]"
}