2016-08-25 2 views
0

여하튼 내 콘솔 응용 프로그램은 실행 중 빈 (0 바이트) Zip 파일을 만듭니다. 그러나 중단 점을 설정하고 F10을 사용하여 패킹 함수를 탐색하면 zip이 정상적으로 생성됩니다.콘솔 응용 프로그램에서 빈 zip 파일을 생성합니다.

이 동작은 두 컴퓨터에서 동일합니다. 이미 DotNetZip 및 SharpZipLib을 사용하여 압축을 시도했지만 효과가 없습니다.

private static void CreateModVersionZip(string path, string zipname) 
{ 
    using (Package zip = System.IO.Packaging.Package.Open(zipname, FileMode.OpenOrCreate)) 
    { 
     string destFilename = ".\\mods\\" + Path.GetFileName(path); 
     Uri uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative)); 
     if (zip.PartExists(uri)) 
     { 
      zip.DeletePart(uri); 
     } 
     PackagePart part = zip.CreatePart(uri, "", CompressionOption.Normal); 
     using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read)) 
     { 
      using (Stream dest = part.GetStream()) 
      { 
       CopyStream(fileStream, dest); 
      } 
     } 
    } 
} 

어떻게 제대로 작동하도록 :

을 압축 기능 (사용 System.IO.Packaging)는 다음과 같다?

필요할 경우 SharpZipLib 및 DotNetZip에 대한 압축 조각을 제공 할 수 있습니다.

+0

파일이나 디렉토리를 압축하려고합니까? –

+0

'CopyStream'은 정확히 무엇을합니까? 시내가 물이 빠지나요? – ArgusMagnus

+0

@ConnorWright .jar 파일을 압축하려고합니다. –

답변

0

글쎄 내 코드에는 문제가 없지만 다른 곳에서 문제를 발견하여 FTP로 파일을 보냈습니다. CodeProject의 스 니펫을 사용했는데 작성자가 파일을 여는 데 약간의 실수 (이 메서드는 파일을 여는 대신 파일을 다시 만들었습니다)가있는 것처럼 보입니다.

관련 문제