使用Files.move()时java.nio.file.AccessDeniedException

MRa*_*ser 5 java nio file

我正在做一个java.nio.file.Files.move(path, path.resolveSibling("newfilename"))重命名Windows 7上的目录.

但我得到以下异常:

java.nio.file.AccessDeniedException: oldfilename -> newfilename
    at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83)
    at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
    at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:387)
    at sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287)
    at java.nio.file.Files.move(Files.java:1345)
Run Code Online (Sandbox Code Playgroud)

是什么造成的?我正在使用Java 7.
在调用之前目标路径不存在Files.move().

UPDATE

来自javadoc:

When moving a directory requires that its entries be moved then this method fails
(by throwing an IOException).
Run Code Online (Sandbox Code Playgroud)

我的目录是非空的并且包含常规文件,所以也许这就是它不能在这里使用的原因?我在理解"要求移动其条目"的措辞方面遇到了问题.这是什么情况?

dan*_*z22 6

在Windows资源管理器中打开目标目录时出现此问题。关闭Windows资源管理器即可正常工作。


Tas*_*kos 3

由于它是 Windows,因此目标路径可能存在并且正在被另一个进程使用。