| using System;
using System.IO;
using System.IO.Compression;
public class CompressProg{
public static void Main(string[] args){
byte[] buffer;
long originalLength;
// Read a file, arg[0], into buffer
using(Stream infile = new FileStream(args[0], FileMode.Open)){
buffer = new byte[infile.Length];
infile.Read(buffer, 0, buffer.Length);
originalLength = infile.Length;
}
// Compress buffer to a GZipStream
Stream compressedzipStream =
new GZipStream(
new BufferedStream(
new FileStream(
args[1], FileMode.Create),
128),
CompressionMode.Compress);
compressedzipStream.Write(buffer, 0, buffer.Length);
compressedzipStream.Close();
// Report compression rate:
Console.WriteLine("CompressionRate: {0}/{1}",
MeasureFileLength(args[1]),
originalLength);
}
public static long MeasureFileLength(string fileName){
using(Stream infile = new FileStream(fileName, FileMode.Open))
return infile.Length;
}
} |