解决方案

我们可以使用此程序Handle来查找哪个进程已锁定文件。这是一个命令行工具。

如果删除文件可以等待,可以在下次启动计算机时指定要删除的文件:

  • 启动REGEDT32(W2K)或者REGEDIT(WXP)并导航至:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
  • WXP:编辑新的多字符串值enterPendingFileRenameOperations`
  • 在"数据"区域中,输入"" \ ?? " +文件名"以将其删除。可以输入LFN,而不必将其嵌入引号中。要删除" C:\Long Directory Name \ Long File Name.exe",请输入以下数据:
\??\C:\Long Directory Name\Long File Name.exe

然后按确定

  • WXP:右键单击该值,选择"修改二进制数据",然后在十六进制字符串的末尾单击,输入0000(四个零)。
  • 关闭REGEDT32/REGEDIT,然后重新启动以删除文件。
C#中如何删除被另一个进程锁定的文件?

在c#中删除文件时,需要找到哪个进程正在锁定文件,关闭该进程。然后才能使用 'File.Delete()'删除文件。
有没有好的方法?

日期:2020-03-23 21:34:13 来源:oir作者:oir