我想寫入/刪除文件,但有時如果該文件正在被另一個程序使用,則會發生崩潰。如何檢查文件是否被其他進程打開,或者我可以打開文件進行寫入?德爾福:檢查文件是否在使用
回答
問題是,在您檢查是否可以獲得獨佔訪問權限和打開文件之間,其他內容會獨佔訪問該文件,並且無論如何你都會得到異常。
如果你能得到一個文件的排他鎖,唯一的傻瓜證明方法是嘗試獲得文件上的排他鎖,如果你有它的話。
如果沒有,你捕獲異常,並且無論是
- 去做些別的
- 稍等片刻,然後再試一次
這是生活中的情況下,最好要問的一個寬恕超過許可:)
+1,我希望更頻繁地投票。這整個「檢查某件事情,然後採取相應措施」似乎是舊DOS(或其他單一任務)日子的殘餘,或者只是程序員喜歡認爲他們的程序全部在計算機上... – mghie 2009-02-02 13:35:03
如果您想查看哪個程序可以處理您的文件,請使用Process Monitor(從MicroSoft下載)。
此工具具有命令行界面,因此您可以使用您的語言的腳本界面(例如java.lang.Process
)運行該工具並顯示一條有用的錯誤消息。
IsFileInUse如http://delphi.about.com/cs/adptips1999/a/bltip0999_3.htm中給出
有一個新的方式來獲得文件的來源鎖定爲Vista和在這裏: http://www.remkoweijnen.nl/blog/2011/01/03/cannot-access-files-but-need-the-origin/
用戶模式: 寫入鎖定的文件,最好的辦法是請用戶關閉它在其他進程。在批處理過程中,您應該忽略這樣的文件並記錄問題。提供其他進程的名稱是爲用戶找到解決方案的一種非常好的方式。
- 1. 德爾福 - 檢查長使用POS
- 2. 德爾福DFM檢查器
- 3. 德爾福拼寫檢查
- 4. (德爾福)檢查狀態
- 5. 是否有德爾福XE
- 6. 德爾福檢查TThread是否仍在運行
- 7. 檢查對象是否創建或不在德爾福
- 8. 德爾福檢查日期,使備份文件計劃
- 9. 德爾福網格面板檢查單元格是否爲空
- 10. 檢查是否需要Focus Rect(德爾福)
- 11. 檢查我們是否有寫入權限的文件夾?德爾福
- 12. 使用德爾福編輯CSS使用德爾福
- 13. 德爾福7德爾福XE2 res文件問題
- 14. 德爾福2009年 - 檢測組件是否安裝
- 15. TMenuItem自動檢查與德爾福5
- 16. 德爾福 - 檢查OSX上的Dropbox
- 17. Windows拼寫檢查和德爾福7?
- 18. 德爾福彈出菜單檢查
- 19. 德爾福v.Word - 如何從德爾福
- 20. 德爾福HID Delphi7和德爾福XE2
- 21. 檢查德爾福DLL的安全性,在使用C#
- 22. 德爾福使用HIDController 2010
- 23. 德爾福使用Indy 10
- 24. 從德爾福使用wordpress
- 25. 德爾福:使用參數
- 26. LIBRTMP德爾福:使用DLL
- 27. 德爾福TadoTable查找
- 28. 德爾福DVD調查課
- 29. 圖像查看德爾福
- 30. ListViewButtonClick在德爾福
這將是信息列出你正在使用的操作系統和編程語言。 – Andy 2009-02-02 12:13:54
+1 Andy。 Arthur,請在標籤或問題中提及編程語言或操作系統。 – Srikanth 2009-02-02 12:23:24