我有一个特殊的文件,即使它是由我自己的进程写的,也不能删除:
Files.copy(source, destination, StandardCopyOption.REPLACE_EXISTING);
Files.deleteIfExists(destination);
不管我怎么努力,我总是得到:
java.nio.file.AccessDeniedException: C:ProgramDataFAForeverbinBsSndRpt.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只给了"缓冲区溢出",但没有访问违反)我怎么能解决它?
您需要更改文件属性,使其不为'Read only'
进入文件本身使用:Windows资源管理器->右键单击->属性
更改对话框底部的文件权限