[英]Delphi: Check whether file is in use
我想寫入/刪除文件,但是如果另一個程序正在使用該文件,有時會崩潰。 如何檢查文件是否已被另一個進程打開或可以打開以進行寫入?
問題是,在您檢查是否可以獲取獨占訪問權和打開文件之間,還有其他東西獲得了對該文件的獨占訪問權,無論如何您都獲得了異常。
看看是否可以在文件上獲得排他鎖的唯一可靠方法是嘗試在文件上獲得排他鎖(如果擁有)。
如果不是,則捕獲異常,或者
這是生活中的一種情況,最好是請求寬恕比允許:)
有一種新的方法可以獲取Vista和更高版本的文件鎖定來源: http : //www.remkoweijnen.nl/blog/2011/01/03/cannot-access-files-but-need-the-origin/
UserMode:寫入鎖定文件的最佳方法是要求用戶在其他過程中將其關閉。 在批處理過程中,您應忽略此類文件並記錄問題。 提供其他進程的名稱是為用戶找到解決方案的一種很好的方法。
如果要查看哪個程序保存了文件的句柄,請使用過程監視器 (從MicroSoft下載)。
該工具具有命令行界面,因此您可以使用語言的腳本界面(例如java.lang.Process
)來運行該工具並顯示有用的錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.