我有一个特定的文件,即使它是由我自己的进程编写的,也无法删除:
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”,但没有访问冲突等)我该如何修复它?
最佳答案
您需要将文件属性更改为“只读”
使用以下方法转到文件本身:Windows 资源管理器 -> 右键单击 -> 属性。
在对话框底部更改文件权限。
关于java - 无法删除或更改特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30558795/