C# GZipStreamクラスでファイルの圧縮、解凍を行う
ソースコードを改訂しました。
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.IO.Compression; class Program { public static void Main() { ///////////////////////////////////////////////////////////////////// //圧縮 String sourceFileName = @"test.txt";//元ファイルの名前 String gzipFileName = @"test.gzip";//GZipで圧縮したファイルの名前 //元ファイルからデータをすべて読み込む Byte[] buffer; using (FileStream ifs = new FileStream(sourceFileName, FileMode.Open)) { buffer = new Byte[ifs.Length]; ifs.Read(buffer, 0, (Int32)ifs.Length); } //読み込んだデータを圧縮して書き込む using (FileStream ofs = new FileStream(gzipFileName, FileMode.Create)) using (GZipStream gzipStream = new GZipStream(ofs, CompressionMode.Compress, true)) { gzipStream.Write(buffer, 0, buffer.Length); } ///////////////////////////////////////////////////////////////////// //解凍 String decompFileName = @"test2.txt";//解凍するファイルの名前 using (FileStream ifs = new FileStream(gzipFileName, FileMode.Open)) using (GZipStream gzipStream = new GZipStream(ifs, CompressionMode.Decompress)) using (FileStream ofs = new FileStream(decompFileName, FileMode.Create)) { buffer = new Byte[1024]; while (true) { //GZipで圧縮されたファイルからデータを読み込む Int32 readBytes = gzipStream.Read(buffer, 0, buffer.Length); if (readBytes == 0) { break; } //解凍されたデータを書き込む ofs.Write(buffer, 0, readBytes); } } } }