注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

回忆之旅

我很向往山村的农庄生活,他们的热情,让我无法抗拒! 51EOO.COM

 
 
 

日志

 
 

asp.net对文件压缩与解压  

2010-02-21 17:19:52|  分类: 技术分享 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
p.StartInfo.Arguments=" a -r "+strR+" "+strF;   //默认压缩到RAR 
    p.StartInfo.Arguments=" a -afzip "+strR+" "+strF;  //压缩到Zip 
    p.StartInfo.Arguments=" m "+strR+" "+strF;     //压缩到RAR并删除原文件 
    p.StartInfo.Arguments=" a -p123456 "+strR+" "+strF;  //密码为123456
 
    p.StartInfo.Arguments=" x "+strR+" "+strF;  //从RAR解压缩,文件名要一致 
    p.StartInfo.Arguments=" x -p123456 "+strR+" "+strF;  //解压加密的RAR
 
    " x -o+" 覆盖已经存在的文件 
    " x -o-" 不覆盖已经存在的文件 
    " x " + strzipPath + "  qingyuan.txt "' + strtxtPath   
           只从压缩包中解压出qingyuan.txt,其它文件不予解压 
    " -y"   对所有询问回应为"是",即发生错误也不弹出窗口 
    " -cl"   转换文件名为小写字母
 

Code:
using System;
using System.Text;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Collections;
using System.IO;
using Microsoft.Win32;
using System.Diagnostics;

/// <summary>
/// Compress 的摘要说明
/// </summary>
public class CompressFiles
{
    /// <summary>
    /// 压缩文件
    /// </summary>
    /// <param name="DFilePath">需要压缩的文件夹或者单个文件</param>
    /// <param name="DRARName">生成压缩文件的文件名</param>
    /// <param name="DRARPath">生成压缩文件保存路径</param>
    /// <returns></returns>
    public static bool CompressRAR(string DFilePath, string DRARName, string DRARPath)
    {
        String the_rar;
        RegistryKey the_Reg;
        Object the_Obj;
        String the_Info;
        ProcessStartInfo the_StartInfo;
        Process the_Process;
        try
        {
            the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\Shell\Open\Command");
            the_Obj = the_Reg.GetValue("");
            the_rar = the_Obj.ToString();
            the_Reg.Close();
            the_rar = the_rar.Substring(1, the_rar.Length - 7);
            the_Info = " a    " + " " + DRARName + "  " + DFilePath + " -ep1"; //命令 + 压缩后文件名 + 被压缩的文件或者路径
            the_StartInfo = new ProcessStartInfo();
            the_StartInfo.FileName = the_rar;
            the_StartInfo.Arguments = the_Info;
            the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            the_StartInfo.WorkingDirectory = DRARPath; //RaR文件的存放目录。
            the_Process = new Process();
            the_Process.StartInfo = the_StartInfo;
            the_Process.Start();
            the_Process.WaitForExit();
            the_Process.Close();            
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }


    /// <summary>
    /// 解压缩到指定文件夹 
    /// </summary>
    /// <param name="RARFilePath">压缩文件存在的目录 </param>
    /// <param name="RARFileName">压缩文件名称 </param>
    /// <param name="UnRARFilePath">解压到文件夹</param>
    /// <param name="isCovering">是否覆盖原来文件</param>
    /// <returns></returns>
    public static bool DecompressionRAR(string RARFilePath, string RARFileName, string UnRARFilePath, bool isCovering)
    {
        //解压缩
        String the_rar;
        RegistryKey the_Reg;
        Object the_Obj;
        String the_Info;
        ProcessStartInfo the_StartInfo;
        Process the_Process;
        try
        {
            the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRar.exe\Shell\Open\Command");
            the_Obj = the_Reg.GetValue("");
            the_rar = the_Obj.ToString();
            the_Reg.Close();
            the_rar = the_rar.Substring(1, the_rar.Length - 7);
            if (isCovering)
            {
                the_Info = @"x -o+" + " " + RARFilePath + RARFileName + " " + UnRARFilePath;
            }
            else {
                the_Info = @"x -o-" + " " + RARFilePath + RARFileName + " " + UnRARFilePath;
            }
            the_StartInfo = new ProcessStartInfo();
            the_StartInfo.FileName = the_rar;
            the_StartInfo.Arguments = the_Info;
            the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;            
            the_Process = new Process();
            the_Process.StartInfo = the_StartInfo;
            the_Process.Start();
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }

    }
}



asp.net对文件压缩与解压 - Tony - 回忆之旅
  评论这张
 
阅读(158)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017