我有一个特定的文件,即使它是由我自己的进程编写的,也无法删除:
Files.copy(source, destination, StandardCopyOption.REPLACE_EXISTING);
Files.deleteIfExists(destination);
无论我尝试什么,我总是得到:
java.nio.file.AccessDeniedException: C:\ProgramData\FAForever\bin\BsSndRpt.exe
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source) ~[na:1.8.0_45]
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) ~[na:1.8.0_45]
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) ~[na:1.8.0_45]
at sun.nio.fs.WindowsFileSystemProvider.implDelete(Unknown Source) ~[na:1.8.0_45]
at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(Unknown Source) ~[na:1.8.0_45]
at java.nio.file.Files.deleteIfExists(Unknown Source) ~[na:1.8.0_45]
所有其他文件(具有完全相同的用户/组权限和所有者)都没有此问题。不,文件没有打开,因为我只是将它复制到那里。
这怎么可能?我怎么能找到? (ProcMon只给出了“BUFFER OVERFLOW”但没有访问违规行为等)我该如何解决?
答案 0 :(得分:2)
您需要将文件属性更改为'只读'
使用以下方法转到文件本身:Windows资源管理器 - >右键单击 - >属性。
更改对话框底部的文件权限。