C# ZipFile.CreateFromDirectory中出现奇怪错误
下面的代码块落入陷阱,并且zip文件不存在,我在这个代码块之前的代码块中检查它C# ZipFile.CreateFromDirectory中出现奇怪错误,c#,zipfile,C#,Zipfile,下面的代码块落入陷阱,并且zip文件不存在,我在这个代码块之前的代码块中检查它 try { ZipFile.CreateFromDirectory(pathToFilesToZip, zipPath, CompressionLevel.Fastest, true); //ZipFile.ExtractToDirectory(zipPath, pathToStoreNewZipFile); return true; } catch (Exception e
try
{
ZipFile.CreateFromDirectory(pathToFilesToZip, zipPath, CompressionLevel.Fastest, true);
//ZipFile.ExtractToDirectory(zipPath, pathToStoreNewZipFile);
return true;
}
catch (Exception ex)
{
//log error here
var errorMessage = ex.InnerException;
Console.WriteLine(errorMessage);
return false;
}
问题是代码工作正常,zip文件是在正确的位置创建的。更奇怪的是,ex在catch块中为null。
为什么执行的代码行会生成异常?如果要创建的zip文件已经存在,则会引发异常。在创建zip文件之前,先添加以下行,尝试删除zip文件:
File.Delete(zipPath);
对于空异常,不记录ex.InnerException
而只记录ex
或ex.Message
。我看到的异常信息是:
文件“C:\Temp\Temp.zip”已存在
如果要创建的zip文件已存在,则引发异常。在创建zip文件之前,先添加以下行,尝试删除zip文件:
File.Delete(zipPath);
对于空异常,不记录ex.InnerException
而只记录ex
或ex.Message
。我看到的异常信息是:
文件“C:\Temp\Temp.zip”已存在
我以前遇到过这个问题,我删除了异常部分中的代码,因为它有随机问题,所以我将代码包装在一个using中,并消除了try-catch,我认为这可能是一个bug,您可以尝试同样的事情..@MethodMan…使用什么?此代码中的哪些内容是一次性的?@dinotom是否可能zip文件已经存在,可能是从第一次执行开始的?在代码运行之前,zip不存在,我已经检查了InnerException是否可以有自己的InnerException等等。我想,如果您确切地知道要查找的异常堆栈,那么您可以直接转到InnerException,否则可能会有10个异常通过InnerException链接在一起,而您只能获取第一个异常。我使用一种简单的方法来获取所有内部异常,
while(ex!=null){print ex.message;ex=ex.InnerException;}
我以前遇到过这个问题,我删除了异常部分中的代码,但出现了随机问题,因此我将代码包装在一个using中,并消除了try-catch,我认为这可能是一个bug,您可以尝试同样的方法。@MethodMan…使用什么?此代码中的哪些内容是一次性的?@dinotom是否可能zip文件已经存在,可能是从第一次执行开始的?在代码运行之前,zip不存在,我已经检查了InnerException是否可以有自己的InnerException等等。我想,如果您确切地知道要查找的异常堆栈,那么您可以直接转到InnerException,否则可能会有10个异常通过InnerException链接在一起,而您只能获取第一个异常。我使用一种简单的方法来获取所有内部异常,while(ex!=null){print ex.message;ex=ex.InnerException;}