在这种情况下,我需要运行一个“预检查”来查看一个目录是否是"createable“。这不是问题,只需运行一个file.mkdirs()并查看它是否返回true。
问题是我想在这张支票之后清理一下。这有点棘手,因为我只想删除mkdirs()实际创建的文件夹和子文件夹。
有人能想出一个聪明的方法来做这件事吗?
发布于 2013-04-09 14:23:46
我认为这种方法在不需要调用mkdirs的情况下完成了工作
public static boolean canMkdirs(File dir) {
if(dir == null || dir.exists())
return false;
File parent = null;
try {
parent = dir.getCanonicalFile().getParentFile();
while(!parent.exists())
parent = parent.getParentFile();
} catch(NullPointerException | IOException e) {
return false;
}
return parent.isDirectory() && parent.canWrite();
}发布于 2013-04-09 14:13:03
保留一个数组,该数组保存该脏的名称。因此,当您想要删除dir时,可以将该数组内容/string/dir-name删除。
发布于 2013-04-09 14:22:34
有点危险:
if (file.mkdirs()) {
long t0 = file.lastModified();
for (;;) {
long t = file.lastModified();
if (t < t0 - 1000L) { // Created longer than it's child minus 1 s?
break;
}
t0 = t;
file.delete();
file = file.getParentFile();
}
}https://stackoverflow.com/questions/15904248
复制相似问题