最最简单的解压缩文件(夹)代码——主要代码就三行哦~

    今天做项目的时候遇到了这样一个需求:把多张表数据以.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();
    }  

   

爱开发,爱分享,我是淑女,我是菜鸟程序员,请多指教喽!(*^__^*) 嘻嘻……
原文地址:https://www.cnblogs.com/SweetyGirl/p/3055156.html