我需要恢复形式的文件进入锁定状态的错误情况。我如何在C#中告诉这个文件重置它的锁?我需要添加到此文件是由第三方DLL打开,我实际上没有访问文件句柄。删除文件锁
删除文件锁
回答
也许你可以这样开始网或psfile中一个命令行程序沿着线的东西:
System.Diagnostics.Process.Start("psfile c:\myfile.txt -c");
你可以得到psfile中here。
你也可以使用
net file ID /close
但这需要你知道文件ID,这将需要更多的工作。
未经测试,但这应该给你一个出发点。
您必须使用.Close()关闭文件。您需要确保您仍然有访问文件对象的方式。
通常可以通过在执行文件I/O的代码之后编写try {} ... finally {}构造来避免此错误。在finally {}块中,您可以调用文件对象的Close方法,以防止出现这种情况。您也可以在创建文件时使用使用{}块,这也会解决这个问题。
锁定文件是操作系统的责任(代表打开它的程序)。如果一个文件处于锁定状态,那么它真正取决于要解锁的操作系统。这通常会在打开文件的进程退出时自动发生。
然而,有一个非常酷的实用程序,我遇到,这将有所帮助。它被称为Unlocker。
我真的会考虑找到另一个第三方DLL。任何处理Streams的系统都应该正确地响应错误情况,并且不要留下文件锁定之类的东西。
有没有可能库提供了错误条件清理,你刚看过吗?试着像下面这样,
try {
thirdPartyObj = new ThirdPartObj();
// Some possible error causing object actions
catch(Exception ex) {
thirdPartyObj = null; // The object should close its resources
}
该进程挂起并吃掉了cpu的50%。在其他情况下,它将返回一个错误代码。这是一个C++ dll中的静态函数。 – Erin 2008-10-23 13:27:12
- 1. 如何删除文件锁
- 2. 如何删除被锁定的文件?
- 3. 无法删除文件,IIS锁
- 4. 如何删除pycharm文件中的锁?
- 5. 解锁要删除的文件
- 6. 用Java删除锁定的文件?
- 7. 如何删除锁定的文件夹
- 8. 如何删除锁定的文件?
- 9. 锁定文件并删除它,而不先释放锁
- 10. 删除锁定的文件和文件夹
- 11. 了解/删除Azure文件服务上的文件锁
- 12. SQL中删除锁
- 13. 删除行和删除表锁甲骨文
- 14. 删除文件
- 15. 删除文件
- 16. 删除文件
- 17. 删除文件
- 18. 删除文件
- 19. 删除文件
- 20. postgresql删除陈旧的锁
- 21. postgresql:删除所有锁
- 22. 死锁在删除选
- 23. Ç守护 - 发行和删除文件锁
- 24. 如何强制删除C/C++中的锁定文件?
- 25. 无法删除同一进程锁定的文件 - 奇怪!
- 26. SQLite数据库文件在插入/删除期间被锁定
- 27. 检测并删除python中的锁定文件
- 28. VFS锁定文件在处理后不会被删除
- 29. 如何在windows下确实删除一个文件(文件锁定问题)?
- 30. 删除,项目不能删除文件
这将工作,如果我不是在第三方DLL中打开该文件。 – Erin 2008-10-23 02:21:03