2016-09-21 3 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 블록에서 null입니다. 실행 된 코드 줄에서 예외가 생성되는 이유는 무엇입니까?

+0

이전에이 문제가 있었는데 예외 부분의 코드를 제거하여 임의의 문제가 발생하여 코드를 사용하여 제거하고 try catch를 제거했습니다. 동일한 문제를 해결할 수있는 버그 일 수 있습니다. – MethodMan

+0

@MethodMan ... 무엇을 사용하고 계십니까? 이 코드에서 일회용으로 사용할 수있는 것은 무엇입니까? – dinotom

+0

@dinotom 아마도 첫 번째 실행에서 zip 파일이 이미 존재할 가능성이 있습니까? – sly

답변

1

생성 될 zip 파일이 이미 존재하는 경우 예외가 발생합니다. 이전에 압축 파일을 생성 다음 행을 추가하여 제 zip 파일을 삭제 해 :

File.Delete(zipPath); 

를 널 예외에 대해서는, 대신 로깅 ex.InnerException 단지 ex 또는 ex.Message 로그. 예외 메시지가 표시됩니다.

'C : \ Temp \ temp.zip'파일이 이미 있습니다.

관련 문제