zoukankan      html  css  js  c++  java
  • 最最简单的解压缩文件(夹)代码——主要代码就三行哦~

        今天做项目的时候遇到了这样一个需求:把多张表数据以.dat格式文件导出,多张表就会有多个.dat文件,想要把它们下载到客户端指定位置,就必须把它们放在一个文件夹中压缩下载。

        通常解压缩文件有两种方法:使用GZip和使用WinRAR。前者是通过GZipStream类对文件(夹)进行解压缩,生成.zip格式的压缩文件,我不喜欢用这种方法的原因是它对文件(夹)有权限的要求,要么给目标文件(夹)添加一个NETWORK SERVICE 用户,要么设置应用池默认属性的标识为LocalService,否则会出现异常:对路径“xxx”的访问被拒绝。相对而言用WinRAR解压缩文件(夹)就省事多了,也比较好理解,就相当于对文件(夹)进行右键--压缩要“xxx.rar”操作。主要代码只有三行呢。

        /// <summary>
        /// 压缩文件(夹)
        /// </summary>
        /// <param name="rootPath">要压缩的目标文件(夹)的绝对路径,例:"G:\Sample\新建文件夹"</param>
        /// <param name="filePath">压缩后文件存放目录,例:"G:\Sample\新建文件夹.rar"</param>
        public void YaSuo(string rootPath,string filePath)
        {
            pro.StartInfo.FileName = @"G:\WinRAR.exe";//WinRAR.exe的绝对路径,例如G盘根目录
            System.Diagnostics.Process pro = new System.Diagnostics.Process();
            pro.StartInfo.Arguments = string.Format("a -ep {0} {1}", filePath, path);
            pro.Start();
        } 

    解压与之相似,相当于右键--解压到当前文件夹

        /// <summary>
        /// 解压文件(夹)
        /// </summary>
        /// <param name="filePath">待解压的.rar压缩文件绝对路径,例:"G:\Sample\新建文件夹.rar"</param>
        /// <param name="savePath">解压后文件保存路径,例:"G:\Sample\"</param>
        public void JieYa(string filePath, string savePath)
        {
            pro.StartInfo.FileName = @"G:\WinRAR.exe";//WinRAR.exe的绝对路径,例如G盘根目录
            System.Diagnostics.Process pro = new System.Diagnostics.Process();
            pro.StartInfo.Arguments = string.Format("X {0} {1}", filePath, savePath);
            pro.Start();
        }  

       

    爱开发,爱分享,我是淑女,我是菜鸟程序员,请多指教喽!(*^__^*) 嘻嘻……
  • 相关阅读:
    C语言I—2019秋作业02
    C语言I—2019秋作业01
    C语言I博客作业01
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
  • 原文地址:https://www.cnblogs.com/SweetyGirl/p/3055156.html
Copyright © 2011-2022 走看看