我可以使用哪種WINAPI函數來確定一個文件是否已被其他進程打開?我必須使用哪個WINAPI函數來確定文件是否被另一個進程阻塞?
我使用C#,有時會得到異常「進程無法訪問該文件,因爲它正在被另一個進程使用」。
我可以使用哪種WINAPI函數來確定一個文件是否已被其他進程打開?我必須使用哪個WINAPI函數來確定文件是否被另一個進程阻塞?
我使用C#,有時會得到異常「進程無法訪問該文件,因爲它正在被另一個進程使用」。
如何嘗試在try/catch bloack內獨佔地打開文件,然後捕獲其他進程異常使用的文件以檢查文件是否忙碌。
簡單的嘗試抓住應該做的(儘管捕獲特定的異常)...如果您不希望文件被使用,那麼可以只處理「特殊」行爲。
此外,如果您只需要閱讀,打開文件以供閱讀,另一個進程可能只是閱讀,並且不必是一個問題,如果您不需要嘗試寫它。
試着打開,並處理它失敗是唯一可靠的方式。任何進行測試然後打開可能會失敗,競爭條件是另一個進程在進程的測試和打開操作之間打開文件。 – Richard 2009-12-11 13:25:23
你想知道哪個其他進程正在使用該文件或只是它正在使用? – 2009-12-11 11:43:03