当前位置:编程学习 > C#/ASP.NET >>

使用Deflate算法对文件进行压缩和解压缩

 

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.zzzyk.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的专栏

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,