zoukankan      html  css  js  c++  java
  • c# 壓縮與解壓的簡單學習

             System.IO.Compression命名空間包含能壓縮代碼中文件的類,這些類使用GZIP或Deflate算法,這兩種算法都是公開的、免費的。
             System.IO.Compression命名空單中有兩個奪縮流類DeflateStream和GZipStream。
    以GZipStream為例,用代碼來學習。
    using System.IO.Compression;
    using System.IO;

    namespace MyZip
    {
        
    public partial class Form1 : Form
        {
            
    public Form1()
            {
                InitializeComponent();

                btnCompressed.Click 
    += new EventHandler(btnCompressed_Click);
                btnUnCompressed.Click 
    += new EventHandler(btnUnCompressed_Click);
            }


            
    /// <summary>
            
    /// 壓縮文件
            
    /// </summary>
            
    /// <param name="asSouceFile">被壓縮的文件的完整路徑</param>
            
    /// <param name="asZipFileName">被解壓文件的完整路徑</param>
            private void SaveCompressdFile(string asSouceFile, string asZipFileName)
            {
                
    string sData = ReadFile(asSouceFile);
                FileStream fsStream 
    = new FileStream(asZipFileName, FileMode.Create, FileAccess.Write);
                
    //壓縮
                GZipStream gzStream = new GZipStream(fsStream, CompressionMode.Compress);
                StreamWriter swWriter 
    = new StreamWriter(gzStream);
                swWriter.Write(sData);
                swWriter.Close();
            }

            
    /// <summary>
            
    /// 解壓文件
            
    /// </summary>
            
    /// <param name="asZipFileName">被解壓文件的完整路徑</param>
            
    /// <param name="asUnZipFileName">解壓後文件的完整路徑</param>
            private void LoadCompressdFile(string asZipFileName,string asUnZipFileName)
            {
                FileStream fsStream 
    = new FileStream(asZipFileName, FileMode.Open, FileAccess.Read);
                
    //解壓縮
                GZipStream gzStream = new GZipStream(fsStream, CompressionMode.Decompress);
                StreamReader srReader 
    = new StreamReader(gzStream);
                
    string sData= srReader.ReadToEnd();
                srReader.Close();
                WriteFile(asUnZipFileName, sData);
            }

            
    /// <summary>
            
    /// 讀取文件
            
    /// </summary>
            
    /// <param name="asSouceFile">被讀取文件的完整路徑</param>
            
    /// <returns></returns>
            private string ReadFile(string asSouceFileName)
            {
                
    string sValue="";
                
    try
                {
                    FileStream fsStream 
    = new FileStream(asSouceFileName, FileMode.Open, FileAccess.Read);
                    StreamReader srReader 
    = new StreamReader(asSouceFileName);
                    sValue 
    = srReader.ReadToEnd();
                    srReader.Close();
                }
                
    catch (Exception ex)
                {
                    
    throw ex;
                }
                
    return sValue;
            }

         
            
    /// <summary>
            
    /// 寫入文件
            
    /// </summary>
            
    /// <param name="asFileName">寫入後文件的完整路徑</param>
            
    /// <param name="asData">被寫入的資料</param>
            
    /// <returns></returns>
            private void WriteFile(string asFileName,string asData)
            {
                FileStream fsStream 
    = new FileStream(asFileName, FileMode.OpenOrCreate, FileAccess.Write);
                StreamWriter swWriter 
    = new StreamWriter(fsStream);
                swWriter.Write(asData);
                swWriter.Close();
            }
            
    /// <summary>
            
    /// 壓縮按鈕事件的方法
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            void btnCompressed_Click(object sender, EventArgs e)
            {
                SaveCompressdFile(
    @"D:\log.txt"@"D:\zip.txt");
            }

            
    /// <summary>
            
    /// 解壓縮壓按鈕事件的方法
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            void btnUnCompressed_Click(object sender, EventArgs e)
            {
                LoadCompressdFile(
    @"D:\zip.txt"@"D:\unzip.txt");
            }

        }
    }
  • 相关阅读:
    48. Rotate Image
    83. Remove Duplicates from Sorted List
    46. Permutations
    HTML5笔记
    18. 4Sum
    24. Swap Nodes in Pairs
    42. Trapping Rain Water
    Python modf() 函数
    Python min() 函数
    Python max() 函数
  • 原文地址:https://www.cnblogs.com/scottckt/p/1233713.html
Copyright © 2011-2022 走看看