using System; using System.IO; using System.IO.

Compression; namespace zip { public class Program { public static void Main() { // Path to directory of files to compress and decompress. string dirpath = @"c:\users\public\reports"; DirectoryInfo di = new DirectoryInfo(dirpath); // Compress the directory's files. foreach (FileInfo fi in di.GetFiles()) { Compress(fi); } // Decompress all *.gz files in the directory. foreach (FileInfo fi in di.GetFiles("*.gz")) { Decompress(fi); } } public static void Compress(FileInfo fi) { // Get the stream of the source file. using (FileStream inFile = fi.OpenRead()) { // Prevent compressing hidden and already compressed files. if ((File.GetAttributes(fi.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fi.Extension != ".gz") { // Create the compressed file. using (FileStream outFile = File.Create(fi.FullName + ".gz") ) { using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress)) { // Copy the source file into the compression stream. byte[] buffer = new byte[4096]; int numRead; while ((numRead = inFile.Read(buffer, 0, buffer.Leng th)) != 0) { Compress.Write(buffer, 0, numRead); } Console.WriteLine("Compressed {0} from {1} to {2} by tes.",

Create(origName)) { using (GZipStream Decompress = new GZipStream(inFile. } } } } } public static void Decompress(FileInfo fi) { // Get the stream of the source file. } } } } } } . //Create the decompressed file. while ((numRead = Decompress.Write(buffer.gz.ToString(). using (FileStream inFile = fi. fi.Read(buffer.Name). string origName = curFile.Length . } Console. 0. numRead). 0.fi. for example "doc" from report.OpenRead()) { // Get original file extension. int numRead.fi. CompressionMode.To String()). outFile.FullName. fi. using (FileStream outFile = File.Name.Leng th)) != 0) { outFile.Length.Remove(curFile.Length.Decompress)) { //Copy the decompression stream into the output file.L ength).do c. buffer. string curFile = fi.Extension.WriteLine("Decompressed: {0}". byte[] buffer = new byte[4096].

Sign up to vote on this title
UsefulNot useful