Windows7中的Java 7文件删除

Windows7中的Java 7文件删除,java,windows-7,Java,Windows 7,以下是我得到的一个例外: Path path = Paths.get("D:/tmp/a/aa/aaa"); Files.delete(path); path = Paths.get("D:/tmp/a/aa"); Files.delete(path); 但是aa文件夹中没有文件/文件夹 当我使用windows资源管理器(此处为aa)访问文件夹并移动到D:\根目录时,就会观察到这种行为 如果我关闭浏览器窗口,这个程序工作正常 我知道windows有时会锁定文件夹

以下是我得到的一个例外:

    Path path = Paths.get("D:/tmp/a/aa/aaa");
    Files.delete(path);
    path = Paths.get("D:/tmp/a/aa");
    Files.delete(path);
但是
aa
文件夹中没有文件/文件夹

当我使用windows资源管理器(此处为
aa
)访问文件夹并移动到
D:\
根目录时,就会观察到这种行为

如果我关闭浏览器窗口,这个程序工作正常


我知道windows有时会锁定文件夹,即使在这种情况下,异常消息
java.nio.file.DirectoryNotEmptyException:D:\tmp\a\aa
似乎是错误的

是的,错误消息是错误的,但是如果另一个进程打开了句柄,windows也不会让文件或文件夹被删除。这无法从Java中修复

另一个技巧是,使用“/”而不是“\\”,因为Java应该是独立于平台的,而“/”在linux和windows上都可以识别。

您是否检查过该文件夹中是否有任何隐藏文件?
如果关闭浏览器窗口,该程序工作正常。
浏览器可能正在锁定目录。请随时向oracle提交有关此消息的错误报告。值得一提的是,Java不识别任何FS锁定,因为它主要独立于操作系统。@Hbcdev没有隐藏文件/folders或者,更好的是,使用
File.separator
为当前系统获取正确的字符,因为至少在上千年的Windows NT中,Windows可以理解/in(大多数)路径名。20年后,仍然有人写双反斜杠-丑陋@这应该是评论,而不是回答
Exception in thread "main" java.nio.file.DirectoryNotEmptyException: D:\tmp\a\aa
  at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:264)
  at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
  at java.nio.file.Files.delete(Files.java:1077)
  at test.Test.main(Test.java:44)