ファイル間にデルタを生成するために.NET環境で圧縮を実行できた人は誰もいません。可能であれば、おそらくmsdelta.dllの機能を使用して、この機能を使用したいと思います。また、他のライブラリ(オープンソースが望ましい)を使ってデルタを生成する方法にも興味があります。.NETのデルタ圧縮
答えて
私は、これは恥知らずプラグのあまりないことを願うが、私は自分自身の目的のためPatchAPIとMSDelta両方のラッパーライブラリを書いています。
このライブラリは、MS-PLおよびDBAD-PLでの二重ライセンスで、GitHubで利用できます。
私はNuGetでプロジェクトを公開するという概念を楽しんでいますが、現時点ではソースをダウンロードしてデルタを作成し適用することができます。デルタの作成
は自明であるべきである。
var compression = new MsDeltaCompression(); /* or PatchApiCompression(); */
compression.CreateDelta(sourcePath, destinationPath, deltaPath);
と等しく自明(たぶん)デルタ適用される:x86でテストさ
var compression = new MsDeltaCompression(); /* or PatchApiCompression(); */
compression.ApplyDelta(deltaPath, sourcePath, destinationPath);
が、P /呼び出しシグネチャをx64とia64でも同様に有効です。あなたはMSDeltaPatchAPIかを使用しているかどうかに決めていないしている場合
は、私のプロジェクトのREADME.md
は(簡単に)あなたが使用すべきものを提案しようとしますが、そうでないthe documentation for Microsoft's Delta Compressionこれは約を言っていますMSDelta対PatchAPI:
MSDelta ...他の方法によって製造されたものよりもはるかに小さい圧縮ファイルを作成することができます。 Windows Vistaでの出荷は、これまでPatchAPIとしてリリースされていた次世代テクノロジです(今後もサポートされる予定です)。
強調鉱山。
[The NuGet Package](http:// nuget。org/packages/DeltaCompressionDotNet /)。 –
偉大なライブラリta.speot.is。ネットワーク上で作業している場合、デルタを取得するためにファイル全体をネットワーク経由で転送する必要はなく、代わりにファイルを転送するだけで、シグネチャファイルを作成する可能性がある場合は、私は不思議でした。デルタ。 – ymerej
@Jeremyありがとう。何種類かのデルタパッチサーバーについて質問していますが、現在のバージョンのファイルのハッシュを送信し、パッチを送って最新のものに更新します。 –
化石SCMはCで実装デルタ圧縮アルゴリズムを持っている、と私はここでのC#上でのポートを作りました:https://github.com/endel/FossilDelta
がデルタを作成するには、元とターゲットのbyte[]
を提供しなければなりません。それはbyte[]
として返され、後で適用することができます。
byte[] origin = System.IO.File.ReadAllBytes ("old-file");
byte[] target = System.IO.File.ReadAllBytes ("new-file");
byte[] delta = Fossil.Delta.Create(origin, target);
デルタは、あなたがこのような元のファイルに変更を適用することができます持つ:
byte[] applied = Fossil.Delta.Apply(origin, delta);
私はそれは価値がこのアルゴリズムの作者は、SQLiteのの同じ著者であることを言及すると思う - それは、信憑性がある。
- 1. .netでのPNG圧縮
- 2. 組み込みの.net圧縮クラスでディレクトリを圧縮するには?
- 3. .NET用高速PDF圧縮ライブラリ
- 4. データ圧縮と画像圧縮の差
- 5. ビットマップデータの圧縮
- 6. ウェブページの圧縮
- 7. node.jsの圧縮
- 8. 圧縮ヘッダーを設定し、圧縮してヘッダーを圧縮しますか?
- 9. Windows phone 7アプリのためのC#.netの圧縮とUN圧縮の方法は?
- 10. PHP圧縮オプション
- 11. Asp.netパス圧縮
- 12. LZWデータ圧縮
- 13. AS3 - 圧縮ByteArray
- 14. Android HttpURLConnection:gzip圧縮
- 15. データ圧縮ビデオチュートリアル?
- 16. DXTテクスチャ圧縮?
- 17. Logstash Elasticsearch圧縮
- 18. iphone NSMutableUrlRequest圧縮
- 19. PHP ZipArchive圧縮
- 20. LZMA圧縮
- 21. スパースアレイ圧縮
- 22. PCMを圧縮
- 23. Javascript圧縮ワークフロー
- 24. ZIP圧縮
- 25. 圧縮コンポーネント
- 26. Realm.io圧縮データベース
- 27. 圧縮JSONオブジェクト
- 28. AppEngine gzip圧縮
- 29. WCFデータセット圧縮
- 30. WebSocketデータ圧縮
[xdelta(http://xdelta.org/)は、私が最もよく見たオープンソースです。しかし、C#から呼び出すのがどれほど簡単かわかりません。 – Rup
ありがとうございます。私はあなたのリンクをチェックアウトし、C#デコーダバージョンを持っている別のリンク(http://www.pobox.com/~skeet/csharp/miscutil)を見つけました。しかし、私はエンコーダも必要になります。 – dubs