2
你可以推薦我任何Windows(最好是.NET)庫,它允許壓縮rsync兼容的數據,即以gzip --rsyncable的方式工作。我發現了zlib的一些請求更改,但似乎尚未實現。我試圖使用一些並行壓縮算法,認爲它可以在塊上獨立進行壓縮,但沒有運氣(原始文件中的任何更改都會使壓縮的完全更改)。Rsyncable壓縮庫
- > EDIT
我抓住露出的ZLib同步模式和4096常量緩衝器和同步沖洗模式使用它,但即使在再次輸入文件的微小變化使一個輸出文件是一個DotNetZip庫完整性不同。我能做錯什麼?
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