如果目录在Windows资源管理器中打开,则Java nio目录delete将给出java.nio.file.DirectoryNotEmptyException
。
我使用的是Java 1.7及以下版本是DeleteDirVisitor's
visitFile
和postVisitDirectory
方法的代码。
@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;
}
throw exc;
}
奇怪的是,当我调试删除调用时,它不会抛出任何异常但是当我运行时它会失败。 似乎是一个时间问题。 此外,如果我关闭指向要删除的目录的资源管理器窗口,则上述API的工作率为100%。
有人可以建议我解决这个问题,这样我就能100%工作。
谢谢,