我正在嘗試遍歷文件樹並刪除所有文件/目錄。該代碼是下面:Java nio - 無法刪除已被清空的目錄
Files.walkFileTree(metricPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file,
BasicFileAttributes attrs) throws IOException {
Files.delete(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir,
IOException exc) throws IOException {
if (exc == null) {
Files.delete(dir);
return FileVisitResult.CONTINUE;
} else {
throw exc;
}
}
});
}
此代碼單元測試,其中的每一個生成一個單獨的文件,在形式folder1/folder2/file
之間運行英寸當我嘗試走樹時,DirectoryNotEmptyException
引發folder1試圖刪除時,雖然它顯然是空的...
的【刪除的文件遞歸的Java(HTTP可能重複://計算器.com/questions/779519/delete-files-recursively-in-java) – jlordo
其實,其他問題是當你有一個文件。在這種情況下,代碼是爲Path執行的,並且不一定能夠將Path轉換爲文件,因此Commons IO的FileUtils將不起作用。 – Trejkaz