程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 使用Deflate算法對文件進行壓縮和解壓縮

使用Deflate算法對文件進行壓縮和解壓縮

編輯:C#入門知識

 

static void Main() 

    string path = @"D:\Practise\IO\Compress"; 

 

    string deCompressPath = @"D:\Practise\IO\DeCompress"; 

 

    DirectoryInfo dir = new DirectoryInfo(path); 

    foreach (FileInfo fi in dir.GetFiles()) 

    { 

        Compress(fi); 

    } 

    foreach (FileInfo fi in dir.GetFiles("*.cmp")) 

    { 

        DeCompress(fi, deCompressPath); 

    } 

public static void Compress(FileInfo fi) 

    using (FileStream fs = fi.OpenRead()) 

    { 

        if (fi.Attributes != FileAttributes.Hidden & fi.Extension != ".cmp") 

        { 

            using (FileStream compressfile = new FileStream(fi.FullName + ".cmp", FileMode.Create, FileAccess.ReadWrite)) 

            { 

                using (DeflateStream ds = new DeflateStream(compressfile, CompressionMode.Compress)) 

                { 

                    fs.CopyTo(ds); 

                    Console.WriteLine("This File {0} has been Compressed to {1}",fi.Name,compressfile.Name); 

                } 

            }  www.2cto.com

        } 

    } 

public static void DeCompress(FileInfo fi, string desination) 

    using (FileStream fs = fi.OpenRead()) 

    { 

        string deCompressFile = fi.Name.Remove(fi.Name.Length - fi.Extension.Length); 

        using (FileStream deCompressFS = new FileStream(Path.Combine(desination, deCompressFile), FileMode.Create, FileAccess.ReadWrite)) 

        { 

            using (DeflateStream ds = new DeflateStream(fs, CompressionMode.Decompress)) 

            { 

                ds.CopyTo(deCompressFS); 

                Console.WriteLine("This file {0} has been Decompressd", fi.Name); 

            } 

        } 

    } 

摘自 ws_hgo的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved