2016-09-21 19 views
0

以下代碼塊落入catch中,並且zip文件不存在,我在代碼塊之前的代碼塊中檢查該代碼塊。來自ZipFile.CreateFromDirectory的奇怪錯誤

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塊中也是空的。 爲什麼執行的代碼行會生成異常?

+0

我以前有這個問題,我刪除了在異常部分的代碼有問題,隨機,所以我一個包裹周圍使用的代碼,並消除了嘗試捕捉我認爲這可能是你可以嘗試同樣的事情的錯誤.. – MethodMan

+0

@MethodMan ...使用什麼?此代碼中的內容是一次性的? – dinotom

+0

@dinotom壓縮文件可能已經存在,也許從第一次執行? – sly

回答

1

如果要創建的zip文件已存在,則會引發異常。嘗試通過添加以下行創建zip文件之前,先刪除該壓縮文件:

File.Delete(zipPath); 

對於空例外,而不是伐木ex.InnerException的只要登錄exex.Message。我看到的異常信息是:

文件'C:\ Temp \ temp.zip'已經存在。