如何防止文件在系统中被打开?

如何防止文件在系统中被打开?

我有一个程序(旧版本的 Delphi),每次打开时都需要创建一个临时文件。问题是,它可以创建该文件,但不能覆盖它,所以每当我尝试打开它时,我都必须先将文件移动到其他地方。

该文件是在临时文件夹 (userfolder\AppData\Local\Temp) 中创建的。我可以将其移动到任何地方,可以重命名,但无法删除它。

所以我创建了一个单独的文件夹,可以把临时文件移到里面。每次我想打开程序时,都会得到一个副本,所以我一直在重命名这些副本。但现在它们太多了,我想把它们删掉。

当我尝试删除一个时,收到一条消息:

由于文件已在系统中打开,因此无法完成该操作

有趣的是,即使我重新启动系统,当我转到我创建的包含这些文件的单独文件夹并尝试删除其中一个时,我仍然会收到该消息。

我努力了:

  • 将这些文件的所有权分配给我自己(它们原本属于系统);
  • 为其他用户账户分配权限,包括“所有人”,并确保他们都有删除文件的权限;
  • 删除所有文件属性;
  • 重启,如上所述。我甚至重启了好几次;
  • 不仅更改文件名,还更改扩展名;
  • Unlocker(一个承诺解决此类问题的程序,但对我来说不起作用);
  • 通过命令提示符。它只是说access denied

我还能尝试什么?如何阻止系统进程打开这些文件,以便我可以删除它们?

答案1

很不错的想法。其他更极端的做法可以尝试:

  • 启动到安全模式
  • 在另一台机器上挂载磁盘

您可以使用进程探索器查看哪个进程(如果有的话)拥有该文件的句柄:

  • Ctrl+L(显示下方窗格)
  • 在下方窗格中,按 Ctrl+F 输入文件名

相关内容