C# DeflateStreamクラスでファイルの圧縮、解凍を行う
DeflateStreamクラスを用いてデフレートアルゴリズムによるファイルの圧縮、解凍を行う(ソースコードを改訂しました)
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 deflateFileName = @"test.lz";//Deflateで圧縮したファイルの名前 //元ファイルからデータをすべて読み込む 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(deflateFileName, FileMode.Create)) using (DeflateStream deflateStream = new DeflateStream(ofs, CompressionMode.Compress, true)) { deflateStream.Write(buffer, 0, buffer.Length); } ///////////////////////////////////////////////////////////////////// //解凍 String decompFileName = @"test2.txt";//解凍するファイルの名前 using (FileStream ifs = new FileStream(deflateFileName, FileMode.Open)) using (DeflateStream deflateStream = new DeflateStream(ifs, CompressionMode.Decompress)) using (FileStream ofs = new FileStream(decompFileName, FileMode.Create)) { buffer = new Byte[1024]; while (true) { //Deflateで圧縮されたファイルからデータを読み込む Int32 readBytes = deflateStream.Read(buffer, 0, buffer.Length); if (readBytes == 0) { break; } //解凍されたデータを書き込む ofs.Write(buffer, 0, readBytes); } } } }