• 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");
            }

        }
    }
  • 相关阅读:
    C语言之逻辑运算符
    iOS:实现图片的无限轮播---之使用第三方库SDCycleScrollView
    Mac 环境下svn服务器的配置
    ld: warning: directory not found for option 去掉警告的方法
    Mac怎么设置wifi热点
    如何获取AppStore软件安装包的路径
    四种卸载Mac软件的方法
    UIAlertController
    uiview关联xib
    OC学习篇之---文件的操作
  • 原文地址:https://www.cnblogs.com/scottckt/p/1233713.html
Copyright © 2020-2023  润新知