2

C# を使用してプログラムで xml ファイルを圧縮しています。圧縮は正常に機能しますが、コマンド ラインからファイルを gunzip すると、拡張子が削除されています。これはなぜでしょうか?

受信する宛先ファイルの拡張子は gz ですが、ソース ファイルの拡張子は xml です。

ここに私の圧縮コードがあります:

            using (FileStream input = File.OpenRead(filename))
            {
                using (var raw = File.Create(destFilename))
                {
                    using (Stream gzipStream = new GZipStream(raw, CompressionMode.Compress))
                    {
                        byte[] buffer = new byte[4096];
                        int n;
                        while ((n = input.Read(buffer, 0, buffer.Length)) != 0)
                        {
                            gzipStream.Write(buffer, 0, n);
                        }
                    }
                }
            }

これは、サードパーティのライブラリ (SharpLibZip) を使用してファイルを圧縮した場合にも発生します。

圧縮された zip ファイルに拡張子を保持するにはどうすればよいですか?

4

2 に答える 2

4

おそらく圧縮ファイルに filename.xml.gz という名前を付ける必要があります - gz 拡張子は意図的に削除され、ソース拡張子はアーカイブ、IIRC 内のどこにも保存されません。

于 2010-06-19T16:26:23.670 に答える