C#でZlibの圧縮(Deflateアルゴリズム)を用いる場合は、System.IO.CompressionのDeflateStreamクラスを用います。
圧縮の際には
解凍の際にも
以下のコードでファイルを圧縮します。
DeflateCompress.exe -c (ファイル名)
以下のコードでファイルを解凍するプログラムの例です。
DeflateCompress.exe -d (ファイル名)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.IO.Compression;
namespace DeflateCompress
{
class Program
{
static void Main(string[] args)
{
string opt = args[0];
opt = opt.Trim();
string fname = args[1];
fname = fname.Trim();
if (opt == "-c") {
FileStream fs = new FileStream(fname, FileMode.Open);
FileStream fso = new FileStream(fname + ".deflate", FileMode.CreateNew);
DeflateStream ds = new DeflateStream(fso, CompressionMode.Compress);
byte[] data = new byte[512];
while (true) {
int rs = fs.Read(data, 0, data.Length);
ds.Write(data, 0, rs);
if (rs == 0) break;
}
fs.Close();
ds.Close();
fso.Close();
}
else if (opt == "-d") {
FileStream fs = new FileStream(fname, FileMode.Open);
DeflateStream ds = new DeflateStream(fs, CompressionMode.Decompress);
FileStream fso = new FileStream(fname + ".decompress", FileMode.Create);
byte[] data = new byte[512];
while (true) {
int rs = ds.Read(data, 0, data.Length);
fso.Write(data, 0, rs);
if (rs == 0) break;
}
fs.Close();
ds.Close();
fso.Close();
}
}
}
}