Java NIO java.nio.file.DirectoryNotEmptyException如果在Windows资源管理器

时间:2018-01-14 11:10:35

标签: java nio

如果目录在Windows资源管理器中打开,则Java nio目录delete将给出java.nio.file.DirectoryNotEmptyException。 我使用的是Java 1.7及以下版本是DeleteDirVisitor's visitFilepostVisitDirectory方法的代码。

@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%工作。

谢谢,

0 个答案:

没有答案