2013-02-23 2 views
1

gzip 아카이브에 데이터를 덤프 할 로그 프로그램을 만들고 있습니다. 모든 파일 내용을 다시 읽을 필요없이기존 Gzip 파일에 텍스트 추가

using (var fs = File.OpenWrite(logFile)) 
{ 
    using (var gs = new GZipStream(fs, CompressionMode.Compress)) 
    { 
     using (var sw = new StreamWriter(gs)) 
     { 
      sw.WriteLine(logEntry); 
     } 
    } 
} 

지금 내가 그 파일에 다른 줄을 추가 원하는보다는 것은 결과 그 방법으로 그것을 다시 쓰기 :

첫 번째 항목은 다음과 같을 것 하나의 GZipStream으로 읽을 수 있습니다.

가장 좋은 방법은 무엇입니까?

+0

gzip/deflate 스트림에 항목을 추가하려면 매번 끝에 부분 플러시 또는 전체 플러시를 수행해야합니다. [Zlib Flush Modes] (http://www.bolet.org/~pornin/deflate-flush.html)를 참조하십시오. GZipStream 클래스는 이러한 플러시 모드를 지원하지 않습니다. 해결책 : GZipStream 클래스를 추가하거나 사용하지 마십시오. – dtb

+0

대신 어떤 도서관에 제안 하시겠습니까? –

답변

1

examples 디렉토리의 zlib 배포본에서 gzlog.hgzlog.c을 사용할 수 있습니다. 그들은 당신이 찾고있는 것을 정확하게합니다.

+0

이것이 C#으로 번역되었을 가능성이 있습니까? –

+0

내가 아는 것은 아닙니다. 나는 쉽게 할 수 있습니다. zlib 용 .NET 인터페이스도 있습니다. http://zlib.net을 참조하십시오. –