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();
        }  

       

    爱开发,爱分享,我是淑女,我是菜鸟程序员,请多指教喽!(*^__^*) 嘻嘻……
  • 相关阅读:
    Java实现 LeetCode 343 整数拆分(动态规划入门经典)
    Java实现 LeetCode 342 4的幂
    Java实现 LeetCode 342 4的幂
    Java实现 LeetCode 342 4的幂
    Java实现 LeetCode 341 扁平化嵌套列表迭代器
    Java实现 LeetCode 341 扁平化嵌套列表迭代器
    Java实现 LeetCode 341 扁平化嵌套列表迭代器
    Java实现 LeetCode 338 比特位计数
    H264(NAL简介与I帧判断)
    分享一段H264视频和AAC音频的RTP封包代码
  • 原文地址:https://www.cnblogs.com/SweetyGirl/p/3055156.html
Copyright © 2011-2022 走看看