以下功能用于删除备份文件夹中的空目录。但是这种方法的问题是,如果它为空,它也会删除备份文件夹。
public static void deleteEmptyDirectoriesOfFolder(final File folder) {
if(folder.listFiles().length == 0){
folder.delete();
}else {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
deleteEmptyDirectoriesOfFolder(fileEntry);
if(fileEntry.listFiles().length == 0){
fileEntry.delete();
}
}
}
}
}
假设我的文件夹结构如下,
backup
-2019
-10
-15
-2020
如果我将方法作为
deleteEmptyDirectoriesOfFolder(backup)
调用,它也会删除backup
文件夹。有没有解决此问题的建议而不包含第二个参数? 最佳答案
您是如此接近,只需将其分为两种方法即可:
deleteEmptySubDirectoriesOfFolder-调用所有子目录的当前方法
deleteEmptyDirectoriesOfFolder-您的当前方法。
这是新方法:
public static void
deleteEmptySubDirectoriesOfFolder(final File folder)
{
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
deleteEmptyDirectoriesOfFolder(fileEntry);
if(fileEntry.listFiles().length == 0){
fileEntry.delete();
}
}
}
}