如何防止檔案在系統中被開啟?

如何防止檔案在系統中被開啟?

我有一個程式(Delphi 的舊版本)需要在開啟時建立一個臨時檔案。問題是,它可以創建該文件,但無法覆蓋它,因此每當我嘗試打開它時,我必須先將該文件移至其他地方。

該檔案在暫存資料夾 (userfolder\AppData\Local\Temp) 中建立。我可以將它移動到任何地方,可以重命名它,但無法刪除它。

因此,我創建了一個單獨的資料夾,可以在其中移動臨時檔案。每次我想打開程式時都會得到一份副本,因此我一直在重命名這些副本。但現在它們太多了,我想擺脫它們。

當我嘗試刪除一個時,我收到一條訊息:

該操作無法完成,因為該檔案已在系統中開啟

有趣的是,即使我重新啟動系統,當我轉到我創建的包含這些文件的單獨資料夾並嘗試刪除其中一個時,我仍然收到該訊息。

我努力了:

  • 為自己分配文件的所有權(它們最初屬於系統);
  • 為其他使用者帳戶指派權限,包括“Everyone”,並確保所有人都有權刪除檔案;
  • 刪除所有檔案屬性;
  • 重啟,如上所述。我甚至做了很多次;
  • 不僅更改檔名,還更改副檔名;
  • Unlocker(一個承諾解決此類問題的程序,但它對我不起作用);
  • 透過命令提示字元。它只是說access denied

我還能嘗試什麼?如何阻止系統進程打開這些檔案以便刪除它們?

答案1

很好的想法清單。其他更極端的事情可以嘗試:

  • 啟動進入安全模式
  • 在另一台機器上掛載磁碟

您可以使用流程瀏覽器查看哪個(如果有)進程擁有該檔案的句柄:

  • Ctrl+L(顯示下方窗格)
  • 在下部窗格中,按 Ctrl+F 指定檔名

相關內容