rsync와 호환 될 수있는 데이터를 압축 할 수있는, 즉 gzip --rsyncable과 같은 방식으로 작동하는 모든 Windows (가능하면 .NET) 라이브러리를 추천 해 주시겠습니까? zlib에 대한 몇 가지 요청 변경 사항을 발견했지만 구현되지 않은 것으로 보입니다. 블록을 독립적으로 압축한다고 생각하는 병렬 압축 알고리즘을 사용하려고했지만 운이 없었습니다. 원본 파일을 변경하면 압축 된 파일이 완전히 변경됩니다.Rsyncable 압축 라이브러리
-> I은 ZLIB 동기화 모드를 노출 4096 일정한 버퍼와 동기화 세척 모드로 사용하지만, 입력 파일 다시 심지어 작은 변경이 될 수있는 출력 파일을 만드는 DotNetZip 라이브러리를 잡고
EDIT completety 다른. 내가 잘못 할 수있는 것은 무엇인가?
using (var inputStream = new FileStream("file.in", FileMode.Open))
using (var outputStream = new FileStream("file.out", FileMode.Create))
{
using (var compressor = new DeflateStream(outputStream, Ionic.Zlib.CompressionMode.Compress))
{
byte[] buffer = new byte[4096];
int n;
while ((n = inputStream.Read(buffer, 0, buffer.Length)) > 0)
{
compressor.FlushMode = FlushType.Sync;
compressor.Write(buffer, 0, n);
compressor.Flush();
// actually, Flush() is not needed, DeflateStream automatically flushes on every write.
}
}
}
동기화를 수행하면 단순히 주기적으로 작업을 수행 할 수 없습니다. 그것은 입력 데이터에 의존해야합니다. 필자가 제공 한 소스 코드에 대한 링크를 읽어야합니다. –
@gregi .NET에서 rsyncable defalte 압축을 유지 관리 했습니까? 코드를 공유 할 수 있습니까? – Stritof