java - 无法删除或更改特定文件

标签 java windows file nio

我有一个特定的文件,即使它是由我自己的进程编写的,也无法删除:

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/

相关文章:

java - 字节码编译错误

java - 在java和python之间传递数据

c++ - 在 Linux 中获取主板 deviceID 和 BIOS 序列号

java - 如何考虑方法中的少数参数

javascript - 如何使以下 readAsDataURL 返回多个 readAsDataURL?

java - 防止正则表达式与环视前后匹配?

java - 运行 JUnit/Mockito 测试时出现 org.springframework.http.converter.HttpMessageNotReadableException

windows - 如何在 windows 2012 服务器中终止特定任务

node.js - Windows 构建工具安装失败

Cocoa API 设置文件打开的默认应用程序