2013-08-26 35 views
1

文件有時拿着一個鎖,當我試圖刪除一個exe文件爲我的過程中的一個我從GetLastError以下錯誤:找出什麼對與WinAPIs

Error: 32 
The process cannot access the file because it is being used by another process. 

是否有辦法使用C++和WinAPI來找出哪些文件鎖定在該文件上?

+1

這是你正在試圖:http://stackoverflow.com/questions/1990535/win32-files-locked-for-reading-how-to-find-out-whos-locking-them – Naveen

+0

@Naveen : 謝謝。順便說一句,很好的CodeProject文章。我需要閱讀它。只是好奇,它是如何'解鎖'解鎖文件 - 使用設備驅動程序? – c00000fd

+0

@ c00000fd:你需要一個設備驅動程序的唯一原因是爲了能夠區分普通文件和命名管道而不會發生死鎖。除此之外,這些都可以從用戶模式完成,儘管有一些困難(假設你有正確的權限)。例如,您不需要*驅動程序來解鎖文件,而是可以將線程注入到另一個關閉句柄的進程中。或者你可以使用'DuplicateHandle(...,DUPLICATE_CLOSE_SOURCE)'。但是駕駛員會更容易。 – Mehrdad

回答

0

適用於我的最佳解決方案可以基於@IInspectable提供的文章。檢查我的其他回覆您的帖子here