12

ディレクトリから特定のファイルを圧縮するためのバージョン 4.0 用の組み込みクラス/例はありますか? MSDN で圧縮クラスを使用する例を見つけましたが、これはバージョン 4.5 以降専用です。

4

2 に答える 2

10

GZipStreamおよびDeflateStream.NET Framework 4 も含むクラスを使用できます。

How to: Compress FilesMSDN から確認してください。

System.IO.Compression.GZipStream クラスを使用して、データを圧縮および解凍します。同じ圧縮アルゴリズムを使用する System.IO.Compression.DeflateStream クラスを使用することもできます。ただし、拡張子が .gz のファイルに書き込まれた圧縮された GZipStream オブジェクトは、多くの一般的な圧縮ツールを使用して解凍できます。

ここからの例:

GZipStream を使用したファイルの圧縮

FileStream sourceFileStream = File.OpenRead("sitemap.xml");
FileStream destFileStream = File.Create("sitemap.xml.gz");

GZipStream compressingStream = new GZipStream(destFileStream,
    CompressionMode.Compress);

byte[] bytes = new byte[2048];
int bytesRead;
while ((bytesRead = sourceFileStream.Read(bytes, 0, bytes.Length)) != 0)
{
    compressingStream.Write(bytes, 0, bytesRead);
}

sourceFileStream.Close();
compressingStream.Close();
destFileStream.Close();

GZipStream を使用したファイルの解凍

FileStream sourceFileStream = File.OpenRead("sitemap.xml.gz");
FileStream destFileStream = File.Create("sitemap.xml");

GZipStream decompressingStream = new GZipStream(sourceFileStream,
    CompressionMode.Decompress);
int byteRead;
while((byteRead = decompressingStream.ReadByte()) != -1)
{
    destFileStream.WriteByte((byte)byteRead);
}

decompressingStream.Close();
sourceFileStream.Close();
destFileStream.Close();
于 2013-06-13T11:53:52.853 に答える