3

後にダンプがありjava.util.zip.Deflater(JavaInflaterが正常に開くので有効であることを確認できます)、.NETで開く必要があります。

byte[] content = ReadSample(sampleName);
var input = new MemoryStream(content);
var output = new MemoryStream();

using (var z = new System.IO.Compression.DeflateStream(input, CompressionMode.Decompress, true))
        z.CopyTo(output);

これはスローします

System.IO.InvalidDataException:ブロック長がその補数と一致しません。

試しIonic.Zlib.DeflateStreamました-同様の例外。どうやってやるの?

ダンプは9786E8 92 47 3D 40 EAで始まります(それが重要な場合)。

更新:残念ながら、システムが本番環境にあるため、Javaパーティを制御できません。

4

3 に答える 3

1

Java出力を制御できないため、java.util.zip.Inflater直接使用するために.NETアプリにJ#を統合するのはどうでしょうか。このMSDNの記事を参照してください。

この同様の質問、特に#zipLibの提案も役立つ場合があります。

于 2011-12-13T16:08:57.433 に答える
1

プラットフォームに依存する圧縮と解凍の使用を解決するには

アプローチ-1

.NET ではSystem.IO.Compression.GZipStreamを使用できます

Java ではjava.util.zip.GZIPOutPutStreamを使用します

アプローチ-2

7-zip も使用できます。C# と Java の両方の SDK があります。

于 2011-12-13T14:40:59.097 に答える
0

DeflaterとInflaterが標準形式であるとは思わないので、JavaとC#で同じであるとしたら驚きます。

プラットフォーム間で同じである必要があるGZIPなどの標準形式を使用することをお勧めします。

于 2011-12-13T14:22:24.553 に答える