123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.IO.Compression;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication6
- {
- class Zipper
- {
- 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.
- inFile.CopyTo(Compress);
- }
- }
- }
- }
- }
- public static void Decompress(FileInfo fileToDecompress)
- {
- try
- {
-
- using (FileStream originalFileStream = fileToDecompress.OpenRead())
- {
- string currentFileName = fileToDecompress.FullName;
- string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);
- using (FileStream decompressedFileStream = File.Create(newFileName))
- {
- using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
- {
- decompressionStream.CopyTo(decompressedFileStream);
- }
- }
- }
- }
- catch (Exception es)
- {
- Console.WriteLine(es.Message);
- }
- }
- }
- }
|