在 Java 中以递归方式删除目录
2022-08-31 04:34:47
有没有办法在Java中递归删除整个目录?
在正常情况下,可以删除空目录。但是,当涉及到删除带有内容的整个目录时,它不再那么简单了。
如何删除Java中包含内容的整个目录?
有没有办法在Java中递归删除整个目录?
在正常情况下,可以删除空目录。但是,当涉及到删除带有内容的整个目录时,它不再那么简单了。
如何删除Java中包含内容的整个目录?
你应该看看Apache的commons-io。它有一个 FileUtils 类,它将执行所需的操作。
FileUtils.deleteDirectory(new File("directory"));
使用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);
}