2

大量のデータを XML に保存しようとすると、ファイルのサイズが非常に大きくなります。圧縮を検索しましたが、最初にファイルを書き込み、次にそれを読み取って別のファイルに圧縮し、大きなファイルと圧縮ファイルの両方で終了し、書き込みと読み取りの中間ステップを削除するのに最も近い例を見つけました。拡張子のないファイルを含むzipでアップします(メモ帳でXMLとして開くことができます)。

これは私が今持っているものです:

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (FileStream outFile = File.Create(@"File.zip"))
{
    using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
    {
        using (XmlWriter writer = XmlWriter.Create(Compress, settings))
        {
            //write the XML
        }
    }
}

zip 内のファイルに XML 拡張子を付けるにはどうすればよいですか?

4

2 に答える 2

1

これは基本的なことを少し誤解している可能性があると思います。私の知る限り、GZip は圧縮システムですが、アーカイブ システムではありません。UNIX システムで作業する場合、それらは 2 つの別個のものとして扱われる傾向があります (一方、ZIP または RAR 圧縮は両方を行います)。アーカイブでは複数のファイルが 1 つのファイルにまとめられ、圧縮によってそのファイルが小さくなります。

「filename.tar.gz」としてダウンロードされる Unix パッケージを見たことがありますか? これが一般的な命名形式です。アーカイブ ファイル (filename.tar) を取得し、それに GZip 圧縮を適用しました (filename.tar.gz)。

実際には、ファイルに「.zip」という名前を付けることで、技術的に少し混乱を招きます (これは完全に異なる、より一般的に使用される形式です)。UNIX の伝統に従いたい場合は、ファイルに「file.xml.gz」という名前を付けてください。アーカイブする場合は、Tar アーカイブ ライブラリを使用してください。7-zip などの他のライブラリには、たとえば、このファイルを .zip にして、Windows コンピューターで簡単に読み取れるようにする場合など、両方を行うより単純な圧縮システムがある場合があります。

于 2013-05-20T19:58:14.327 に答える
0

最初に一時ファイルに書き込む必要があると思います。を見てみましょう

DotNetPerls

于 2013-05-20T20:11:21.547 に答える