You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:37:51