add method

This commit is contained in:
Looly 2024-07-06 10:43:30 +08:00
parent 6b60aef692
commit 84cc08932c

View File

@ -748,6 +748,39 @@ public class FileUtil extends PathUtil {
clean(directory.toPath());
}
/**
* 清理空文件夹<br>
* 此方法用于递归删除空的文件夹不删除文件<br>
* 如果传入的文件夹本身就是空的删除这个文件夹
*
* @param directory 文件夹
* @return 成功与否
* @throws IORuntimeException IO异常
* @since 4.5.5
*/
public static boolean cleanEmpty(final File directory) throws IORuntimeException {
if (directory == null || false == directory.exists() || false == directory.isDirectory()) {
return true;
}
final File[] files = directory.listFiles();
if (ArrayUtil.isEmpty(files)) {
// 空文件夹则删除之
return directory.delete();
}
for (final File childFile : files) {
cleanEmpty(childFile);
}
// 当前目录清除完毕需要再次判断当前文件夹空文件夹则删除之
final String[] fileNames = directory.list();
if (ArrayUtil.isEmpty(fileNames)) {
return directory.delete();
}
return true;
}
/**
* 创建文件夹如果存在直接返回此文件夹<br>
* 此方法不对File对象类型做判断如果File不存在无法判断其类型