Windows 7中的Java 7文件删除

时间:2013-02-05 10:36:24

标签: 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);

以下是我得到的例外情况:

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)

虽然aa文件夹中没有文件/文件夹。

当我使用Windows资源管理器(此处为aa)访问该文件夹并移至D:\根目录时,会出现此行为。

如果我关闭了资源管理器的遗,这个程序运行正常。

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

2 个答案:

答案 0 :(得分:3)

是错误消息是错误的,但是Windows不会删除文件或文件夹,而是另一个进程打开句柄。这不能从Java修复。

答案 1 :(得分:2)

另一个提示,使用“/”而不是“\\”,因为Java应该是平台无关的,而“/”在linux和windows上都被识别。