0

C# 用の ZipDotNet ライブラリを使用しています。

次のようなランダム データを含むバイト配列を作成しました。

public static byte[] GetRandomBytes(int Length)
        {
            byte[] data = new byte[Length];
            Random random = new Random();
            random.NextBytes(data);
            return data;
        }

これらのバイトを MemoryStream に圧縮し、MemoryStream もバイト配列として返します。

public static byte[] zipFileToStream(byte[] file)
        {
            using (MemoryStream memStream = new MemoryStream())
            {
                using (ZipFile zip = new ZipFile())
                {
                    zip.AddEntry("file.txt", file);
                    zip.Save(memStream);
                }
                return memStream.ToArray();
            }
       }

返されたバイト配列を出力すると、常に同じバイトが入っていますか?

誰でも私の問題を解決できますか?

4

2 に答える 2

0

zipFileToStream の出力全体を確認しましたか? ZIP アーカイブには、ファイル エントリごとにいくつかのヘッダーがあり、この場合、最初のバイト数は毎回同じになります。

于 2012-12-24T10:23:32.540 に答える
0

MemoryStrream Position を 0 に設定すると、問題が解決しました。

于 2013-01-01T10:41:30.670 に答える