当前位置:  编程技术>.net/c#/asp.net

使用Deflate算法对文件进行压缩与解压缩的方法详解

    来源: 互联网  发布时间:2014-10-21

    本文导语:  如下所示: 代码如下:        static void Main()        {            string path = @"D:PractiseIOCompress";            string deCompressPath = @"D:PractiseIODeCompress";            DirectoryInfo dir = new DirectoryInfo(path);         ...

如下所示:
代码如下:

        static void Main()
        {
            string path = @"D:PractiseIOCompress";
            string deCompressPath = @"D:PractiseIODeCompress";
            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);
                        }
                    }
                }
            }
        }
        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);
                    }
                }
            }
        }

    
 
 

您可能感兴趣的文章:

  • 请教如何在Java中使用arj压缩的文件(压缩和解压缩)Linux下面
  • unix(AIX或SCO)下有没有压缩工具可以提供使用密码压缩?
  • 请问如何使用gzip命令将两个文件压缩成一个
  • php的zip解压缩类pclzip使用示例
  • 谁能告诉我如何使用JAR进行压缩(语法)
  • 使用自定义.jar压缩文档的问题!
  • [菜鸟问题]我下载了一个xmms.tar.gz,解压缩后不知道该如何使用了!! 盼高手解答!!
  • C#使用晚绑定来实现压缩Access数据库的方法
  • C#使用iCSharpcode进行文件压缩实现方法
  • windows系统中python使用rar命令压缩多个文件夹示例
  • 使用游长编码对字符串压缩 Run Length编码示例
  • java使用gzip实现文件解压缩示例
  • 使用ANT与YUI压缩js的实现方法
  • 使用java基础类实现zip压缩和zip解压工具类分享
  • php使用imagick模块实现图片缩放、裁剪、压缩示例
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法
  • 操作系统的使用的处理死锁的算法
  • 算法之排序算法的算法思想和使用场景总结
  • 请问linux中,有没有现成的md5算法可以使用?
  • 使用swap指令和Test and set指令设计一个解决N个进程互斥问题的算法
  • java不可逆加密算法之md5加密算法使用示例
  • 使用递归算法求第30位数的值
  • python基础教程之python消息摘要算法使用示例
  • php生成数组的使用示例 php全组合算法
  • rsa加密算法使用示例分享
  • 基于欧几里德算法的使用
  • Java递归算法的使用分析
  • c语言中使用BF-KMP算法实例
  • 使用python实现递归版汉诺塔示例(汉诺塔递归算法)
  • java 使用简单的demo实例告诉你优化算法的强大
  • 使用java自带des加密算法实现文件加密和字符串加密
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下top命令详解包括top命令参数使用及结果(virt,res,shr)排序举例说明
  • C#中is与As运算符号的使用详解 iis7站长之家
  • linux top命令详解以及top命令的各项使用技巧详细说明
  • c# 空合并运算符“??”的使用详解
  • 在android开发中尽量不要使用中文路径的问题详解
  • 深入SQLServer中ISNULL与NULLIF的使用详解
  • MYSQL 批量替换之replace语法的使用详解
  • 汇编语言rep movsd 的使用详解
  • 使用SQL Server判断文件是否存在后再删除(详解)
  • 深入C#中使用SqlDbType.Xml类型参数的使用详解
  • 基于C语言fflush()函数的使用详解
  • 基于C++字符串替换函数的使用详解
  • Android开发笔记之:一分钟学会使用Logcat调试程序的详解
  • 深入分析Java内存区域的使用详解
  • Python Deque 模块使用详解
  • c语言中位字段与结构联合的组合使用详解
  • C#中is与As运算符号的使用详解
  • 基于DateTime.ParseExact方法的使用详解
  • 使用DateTime的ParseExact方法实现特殊日期时间的方法详解
  • 从汇编看c++的默认析构函数的使用详解
  • oracle合并列的函数wm_concat的使用详解
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3