题
我需要从文件处于锁定状态的错误情况中恢复。我怎样才能在c#中告诉这个文件重置它的锁?我需要添加到这个文件由第三方DLL打开,我实际上没有访问文件句柄。
其他提示
锁定文件是操作系统(代表打开它的程序)的责任。如果一个文件处于锁定状态,它真的由操作系统解锁。这通常在打开文件的进程退出时自动发生。
然而,我遇到的一个非常酷的实用程序会有所帮助。它被称为解锁者。
我真的会考虑寻找另一个第三方dll。任何处理Streams的系统都应该正确响应错误条件,而不是保留文件锁等。
库是否有可能提供错误条件清理,你刚看过它?尝试以下内容,
try {
thirdPartyObj = new ThirdPartObj();
// Some possible error causing object actions
catch(Exception ex) {
thirdPartyObj = null; // The object should close its resources
}
您必须使用.Close()关闭文件。您需要确保仍然可以访问文件对象。
通常可以在执行文件I / O的代码之后编写try {} ... finally {}构造来避免此错误。在finally {}块中,您将调用文件对象的Close方法,以防止出现这种情况。您还可以在创建文件时使用using {}块,这也将解决此问题。
不隶属于 StackOverflow