2016-09-21 25 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がnullです。 実行されたコード行が例外を生成するのはなぜですか?

+0

私はこの問題を以前に持っていましたが、例外部分のコードを削除してランダムな問題を抱えていたので、コードを使ってコードをラップしてtry catchを削除しました。 – MethodMan

+0

@MethodMan ...何を使用していますか?このコードの中で使い捨てのものは何ですか? – dinotom

+0

@dinotomおそらく最初の実行からzipファイルがすでに存在する可能性はありますか? – sly

答えて

1

作成するzipファイルが既に存在する場合、例外がスローされます。だけではなくexまたはex.Messageを記録ex.InnerExceptionをログに記録するのは、null例外に関して

File.Delete(zipPath); 

:前にzipファイルを作成するに次の行を追加することにより、最初のzipファイルを削除してみてください。私が見ている例外のメッセージは次のとおりです。

ファイル 'C:\ Temp \ temp.zip'は既に存在します。