有没有办法在 Java 中递归删除整个目录?
在正常情况下,可以删除一个空目录。然而,当涉及到删除包含内容的整个目录时,就不再那么简单了。
如何删除包含 Java 内容的整个目录?
原文由 paweloque 发布,翻译遵循 CC BY-SA 4.0 许可协议
有没有办法在 Java 中递归删除整个目录?
在正常情况下,可以删除一个空目录。然而,当涉及到删除包含内容的整个目录时,就不再那么简单了。
如何删除包含 Java 内容的整个目录?
原文由 paweloque 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Java 7 中,我们终于 可以通过可靠的符号链接检测来做到这一点。 (我不认为 Apache 的 commons-io 目前具有 可靠的 符号链接检测,因为它不处理 Windows 上使用 mklink
创建的链接。)
为了历史起见,这里有一个 Java 7 之前的答案,它 遵循符号链接。
void delete(File f) throws IOException {
if (f.isDirectory()) {
for (File c : f.listFiles())
delete(c);
}
if (!f.delete())
throw new FileNotFoundException("Failed to delete file: " + f);
}
原文由 erickson 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
您应该查看 Apache 的 commons-io 。它有一个 FileUtils 类,可以做你想做的事。