• [转][C#]压缩解压缩类 GZipStream


    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:userspublic
    eports";
    
                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.
                            inFile.CopyTo(Compress);
    
                                Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
                                    fi.Name, fi.Length.ToString(), outFile.Length.ToString());
                            }
                        }
                    }
                }
            }
    
            public static void Decompress(FileInfo fi)
            {
                // Get the stream of the source file.
                using (FileStream inFile = fi.OpenRead())
                {
                    // Get original file extension, for example
                    // "doc" from report.doc.gz.
                    string curFile = fi.FullName;
                    string origName = curFile.Remove(curFile.Length - 
                            fi.Extension.Length);
    
                    //Create the decompressed file.
                    using (FileStream outFile = File.Create(origName))
                    {
                        using (GZipStream Decompress = new GZipStream(inFile,
                                CompressionMode.Decompress))
                        {
                            // Copy the decompression stream 
                            // into the output file.
                            Decompress.CopyTo(outFile);
                            
                            Console.WriteLine("Decompressed: {0}", fi.Name);
    
                        }
                    }
                }
            }
    
        }
    }
  • 相关阅读:
    冲刺阶段站立会议每天任务7
    冲刺阶段站立会议每天任务6
    冲刺阶段站立会议每天任务5
    冲刺阶段站立会议每天任务4
    《梦断代码》读后感一
    第一次冲刺项目总结
    书店促销问题
    用户需求调研报告
    需求分析
    返回二维数组最大子数组的和(2)
  • 原文地址:https://www.cnblogs.com/z5337/p/7015640.html
Copyright © 2020-2023  润新知