在C++(特別是Visual C++)中,有時您不能打開文件,因爲另一個可執行文件已打開並且未共享它以進行讀取。如果我嘗試打開這樣的文件,我怎樣才能以編程方式找出誰在鎖定文件?Win32文件被鎖定以供閱讀:如何找出鎖定它們的人
6
A
回答
11
在Windows 2000及更高版本中,如果不使用內核模式驅動程序,則無法執行此操作。 Process Explorer和其他類似工具會自動加載驅動程序來完成此操作。這是因爲文件句柄位於內核空間中,不能被用戶模式應用程序(EXE文件)訪問。
如果您真的對此感興趣,請查看this project。
3
MSDN批准的方式是IFileIsInUse::GetAppName()
。不過,需要Vista。
相關問題
- 1. Webservice讀取文件,它們是否被鎖定?
- 2. 如何鎖定文本文件以便閱讀?
- 3. 我可以鎖定一排DB2以供閱讀嗎?
- 4. 如何刪除被鎖定的文件?
- 5. TFS聲明文件被鎖定,即使它們不是 - 孤兒鎖
- 6. 如何解鎖被.NET中的進程鎖定的文件
- 7. C#文件被鎖定後
- 8. SQLITE_BUSY數據庫文件被鎖定(數據庫被鎖定)wicket
- 9. 是否可以讀取鎖定文件?
- 10. 鎖定文件是否被除我以外的人改變?
- 11. 如何使Windows文件鎖定更像UNIX文件鎖定?
- 12. 閱讀循環日誌文件和文件鎖定
- 13. C#如何鎖定文件
- 14. 如何鎖定文件
- 15. 如何鎖定文件,讀取其內容並覆蓋它?
- 16. AAPT被鎖定
- 17. HttpURLConnection被鎖定
- 18. 如何使用SI中提供的文件鎖定機制來讀取文件
- 19. 當它打開它們(Linux)時,MATLAB會鎖定文件嗎?
- 20. 閱讀時鎖定數據庫[Android] [SQLite]
- 21. MQ鎖定減慢閱讀器程序
- 22. 如何鎖定xampp以保護文件不被複制
- 23. 如何鎖定文件以進行讀寫訪問O_RDWR
- 24. 解鎖鎖定的java文件Android studio
- 25. 如何找出subversion工作目錄是否被svn鎖定?
- 26. System.Reflection.Assembly.LoadFile鎖定文件
- 27. Java文件鎖定
- 28. FileInfo鎖定文件!
- 29. System.IO.File.Create鎖定文件
- 30. PowerShell鎖定文件
您可以看到Process Explorer正在通過查看'System'進程的DLL來加載驅動程序;你會看到一個類似於'PROCEXP113.SYS'的驅動程序加載 – 2010-01-02 03:53:06