![有没有办法删除 Windows 上锁定的文件?](https://linux22.com/image/1515759/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E5%88%A0%E9%99%A4%20Windows%20%E4%B8%8A%E9%94%81%E5%AE%9A%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我正在尝试删除在 eclipse (Java) 构建过程中生成的文件。我仔细阅读了这里,但到目前为止对我都不起作用(见下文)。
该文件名为 dataentry.war。我使用了处理识别拥有它的进程:
> handle64 dataentry.war
Nthandle v4.1 - Handle viewer
Copyright (C) 1997-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
ccSvcHst.exe pid: 2720 type: File 2350: C:\Users\mmalaterre\workspace\dataentry\target\dataentry.war
ccSvcHst.exe pid: 2720 type: File 2350: C:\Users\mmalaterre\workspace\dataentry\target\dataentry.war
ccSvcHst.exe pid: 2720 type: File 344C: C:\Users\mmalaterre\workspace\dataentry\target\dataentry.war
ccSvcHst.exe pid: 2720 type: File 344C: C:\Users\mmalaterre\workspace\dataentry\target\dataentry.war
那么现在我该如何删除这个文件?
使用explorer
(以管理员权限启动),我收到这个愚蠢的消息,说我没有管理员权限:
我尝试使用任务管理器:
但这导致:
从cmd
具有管理员权限的 shell:
>del /F dataentry.war
c:\Users\mmalaterre\workspace\dataentry\target\dataentry.war
Access is denied.
由于某种原因,我无法resmon
找到句柄:
我也尝试重命名父目录,以便它不会妨碍我(eclipse),但我再次无法做到这一点:
如果我尝试从 cmd(具有管理员权限)删除该进程,我将得到以下结果:
>taskkill /PID 2720 /t /f
ERROR: The process with PID 3856 (child process of PID 2720) could not be terminated.
Reason: Access is denied.
ERROR: The process with PID 2720 (child process of PID 700) could not be terminated.
Reason: Access is denied.
有没有任何在 Windows 上删除锁定的文件的方法?
答案1
您的病毒扫描程序正在锁定文件,并且病毒扫描程序受到很好的保护,不会终止进程,从而防止病毒尝试执行同样的事情。
暂时停止实时病毒扫描程序以解除锁定。如果此方法无效,请重新启动以解除锁定。
然后删除该文件。
PS 通常,最好将编译/构建/调试目录从实时病毒扫描程序中排除。编译器/链接器/调试器的操作在病毒扫描程序看来可能很可疑,病毒扫描程序的过度检查可能会减慢甚至干扰编译/构建/调试会话。