gpt4 book ai didi

java - 如何递归删除空目录而不删除父文件夹?

转载 作者:行者123 更新时间:2023-12-01 06:01:08 25 4
gpt4 key购买 nike

以下函数用于删除备份文件夹中的空目录。但此方法的问题是,如果备份文件夹为空,它也会删除它。

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();
}
}
}

}

关于java - 如何递归删除空目录而不删除父文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58869547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com