我正在执行 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)
这是什么原因造成的?我正在使用 Java 7。
在调用 Files.move()
之前目标路径不存在。
更新
When moving a directory requires that its entries be moved then this method fails
(by throwing an IOException).
我的目录是非空的并且包含常规文件,所以这可能是它不能在这里使用的原因?我在理解“需要移动其条目”的措辞时遇到问题。什么时候出现这种情况?
最佳答案
当在 Windows 资源管理器中打开目标目录时,我遇到了这个问题。关闭 Windows 资源管理器使其工作。
关于使用 Files.move() 时出现 java.nio.file.AccessDeniedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22988210/