2014-06-11 3 views
0

나는 아주 이상한 문제가있다. SharpZipLib 라이브러리를 사용하여 .zip 파일을 생성합니다. 나는 .zip의 크기가 내 텍스트 파일의 총 크기보다 조금 더 큰 것을 발견했다. 나는 틀린 것을 모른다. 나도 구글에 가려고했지만 내 사건과 관련이 없다. 이것은 내 코드입니다.압축 파일의 크기가 SharpZipLib에서 압축되지 않은 것보다 큰 이유는 무엇입니까?

protected void CompressFolder(string[] files, string outputPath) 
    { 
     using (ZipOutputStream s = new ZipOutputStream(File.Create(outputPath))) 
     { 
      s.SetLevel(0); 
      foreach (string path in files) 
      { 
       ZipEntry entry = new ZipEntry(Path.GetFileName(path)); 
       entry.DateTime = DateTime.Now; 
       entry.Size = new FileInfo(path).Length; 
       s.PutNextEntry(entry); 
       byte[] buffer = new byte[4096]; 
       int byteCount = 0; 
       using (FileStream input = File.OpenRead(path)) 
       { 
        byteCount = input.Read(buffer, 0, buffer.Length); 
        while (byteCount > 0) 
        { 
         s.Write(buffer, 0, byteCount); 
         byteCount = input.Read(buffer, 0, buffer.Length); 
        } 
       } 
      } 
     } 
    } 
+2

당신이 압축하는 텍스트 또는 바이너리/그림/단어 문서 등? 일반적으로 압축하면 원본 파일이 이미 압축 된 경우 약간 큰 파일이 생성 될 수 있습니다. –

+0

압축 파일을 압축하면 결과가 이전보다 커집니다. 파일이 이미 압축되어 있습니까? 대답하기 전에보십시오. – Will

+0

내 파일은 텍스트 파일입니다. 나는 수동으로 압축하려고했는데, zip 파일 크기는 SharpZipLib에서 얻은 zip 파일보다 훨씬 작습니다. – user1412944

답변

6

압축 수준 0은 압축 대신 SharpZipLib에 신호를 보냅니다.

큰 크기 (파일 이름 등) 때문에 우편 메타 구조이다

귀하의 솔루션은 다음 높은 뭔가 레벨을 변경하는 것, 즉 :

s.SetLevel(9); 
+0

고마워, 작동 해 !! – user1412944

관련 문제