ファイル間にデルタを生成するために.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. Gitのデルタ圧縮とその使用
- 2. .netでのPNG圧縮
- 3. 予測デルタを効率的に圧縮する
- 4. 組み込みの.net圧縮クラスでディレクトリを圧縮するには?
- 5. 圧縮CCITT 3および4 in .NET
- 6. .NET用高速PDF圧縮ライブラリ
- 7. 静的ファイル用.NET Coreレスポンス圧縮ミドルウェア
- 8. データ圧縮と画像圧縮の差
- 9. LZ4:圧縮画像フォーマットの圧縮
- 10. ウェブページの圧縮
- 11. node.jsの圧縮
- 12. ビットマップデータの圧縮
- 13. Windows phone 7アプリのためのC#.netの圧縮とUN圧縮の方法は?
- 14. 圧縮ヘッダーを設定し、圧縮してヘッダーを圧縮しますか?
- 15. dotnetコア2のルート特有の応答圧縮asp .net?
- 16. PCMを圧縮
- 17. ServiceStackクライアント圧縮
- 18. PHP圧縮オプション
- 19. カラム圧縮
- 20. AppEngine gzip圧縮
- 21. データ圧縮モデル
- 22. Realm.io圧縮データベース
- 23. 圧縮オプション
- 24. Rsyncable圧縮ライブラリ
- 25. Graphviz圧縮グラフ
- 26. iphone NSMutableUrlRequest圧縮
- 27. WebSocketデータ圧縮
- 28. 圧縮JSONオブジェクト
- 29. コントロール圧縮APPX
- 30. ZIP圧縮
[xdelta(http://xdelta.org/)は、私が最もよく見たオープンソースです。しかし、C#から呼び出すのがどれほど簡単かわかりません。 – Rup
ありがとうございます。私はあなたのリンクをチェックアウトし、C#デコーダバージョンを持っている別のリンク(http://www.pobox.com/~skeet/csharp/miscutil)を見つけました。しかし、私はエンコーダも必要になります。 – dubs