【问题标题】:Can't delete or change specific file无法删除或更改特定文件
【发布时间】:2015-05-31 14:50:44
【问题描述】:

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

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”但没有访问冲突左右)我该如何解决它?

【问题讨论】:

  • 它必须是Java还是可以忽略文件是如何被删除的?
  • 您是否尝试过 procexp 及其查找句柄函数来找出可能阻止文件的人?它可能是未关闭的句柄或您的防病毒软件

标签: java windows file nio


【解决方案1】:

您需要将文件属性更改为不为“只读”

使用以下方法转到文件本身:Windows 资源管理器 -> 右键单击​​ -> 属性。

在对话框底部更改文件权限。

【讨论】:

  • 天哪,是时候卖掉我的电脑了,再也不要碰它了。它真的是只读标志 xD 谢谢你
猜你喜欢
  • 2023-02-02
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
  • 2020-12-28
  • 2016-08-28
  • 2014-04-09
相关资源
最近更新 更多