RAR文件解压时NUnrar方法抛异常,如何执行ExtractFile替代方法?
解决方案:捕获异常并执行备用解压方法
你只需要在调用NUnrar的解压方法时,用try-catch语句块捕获异常,当异常发生时,转而执行你的ExtractFile方法就可以了。这里是修改后的完整代码:
if (filesxt.Extension.ToString() == ".rar") { try { // 尝试用NUnrar解压 NUnrar.Archive.RarArchive.WriteToDirectory(Sourcepath, Destination, NUnrar.Common.ExtractOptions.ExtractFullPath | NUnrar.Common.ExtractOptions.Overwrite); } catch (Exception ex) { // 捕获到异常时,执行备用解压方法 ExtractFile(Sourcepath, Destination); // 可选:记录异常信息,方便排查问题 // Console.WriteLine($"NUnrar解压失败:{ex.Message}"); } } else if (filesxt.Extension.ToString() == ".zip") { UnZipFromMTAThread(Sourcepath, Destination); }
补充说明:
- 我这里捕获的是通用的
Exception,如果NUnrar有自己的特定异常类型(比如RarArchiveException之类的),建议捕获更具体的异常类型,这样不会误捕获其他无关异常。 - 你可以根据需要在
catch块里添加日志记录,方便后续排查解压失败的原因。 - 如果
ExtractFile也可能抛出异常,你可以继续给它加try-catch,或者根据业务需求做进一步处理。
内容的提问来源于stack exchange,提问作者Samsam
相关产品推荐
相关产品推荐

