• asp.net在线压缩和解压缩的实现 VS2005


    http://www.cnblogs.com/skylaugh/archive/2007/04/04/699458.html asp.net在线压缩和解压缩的实现VS2003

    最新把VS2005的放上,大家下吧,太方便了。

    下载地址:https://files.cnblogs.com/skylaugh/TreeRar.rar

    以下是代码片断(注意命名空间和rar命令参数)

    protected void btnZip_Click(object sender, EventArgs e)
            {
                //压缩
                String myRar;
                RegistryKey myReg;
                Object myObj;
                String myInfo;
                ProcessStartInfo myStartInfo;
                Process myProcess;
                try
                {
                    myReg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\Shell\Open\Command");
                    myObj = myReg.GetValue("");
                    myRar = myObj.ToString();
                    myReg.Close();
                    myRar = myRar.Substring(1, myRar.Length - 7);
                    //myInfo = "a  -r  -ep1 demo.rar " + lbTree.Text + @"rar/demo.txt "+ lbTree.Text + @"rar";//这里为rar的压缩命令格式
                    myInfo = "a  -r  -ep1 demo.rar " + lbTree.Text;//这里是压缩整个目录
                    // 压缩格式说明:<命令> -<开关1> -<开关N> <压缩文件> <文件1、文件2...> <@列表文件...> <解压路径\>
                    // 1、“a  -r  -ep1 ”是rar压缩指令,
                    // 2、“demo.rar” 是压缩后的文件名称
                    // 3、lbTree.Text + @"rar"是需要压缩的文件或文件夹,可多个
                    myStartInfo = new ProcessStartInfo();
                    myStartInfo.FileName = myRar;
                    myStartInfo.Arguments = myInfo;
                    myStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    myStartInfo.WorkingDirectory = lbTree.Text + "rar"; ;//获取或设置要启动的进程的初始目录,即压缩后的文件的路径。
                    myProcess = new Process();
                    myProcess.StartInfo = myStartInfo;
                    myProcess.Start();
                    Response.Write("<font color=red>压缩成功</font>");
                }
                catch (Exception ex)
               {
                    Response.Write(ex.ToString());
                }

            }

            protected void btnUnZip_Click(object sender, EventArgs e)
            {
                 //解压缩
                String myRar;
                RegistryKey myReg;
                Object myObj;
                String myInfo;
                ProcessStartInfo myStartInfo;
                Process myProcess;
                try
                {
                    myReg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRar.exe\Shell\Open\Command");
                    myObj = myReg.GetValue("");
                    myRar = myObj.ToString();
                    myReg.Close();
                    myRar = myRar.Substring(1, myRar.Length - 7);
                    myInfo = " X " + lbTree.Text + @"rar/demo.rar " + " " + lbTree.Text + @"unRar";// 解压格式
                    // 解压缩格式说明:<命令> -<开关1> -<开关N> <压缩文件路径> <解压路径\>
                    // 1、“ X ”是rar压缩指令,
                    // 2、@"rar/demo.rar " 是压缩后的文件路径
                    // 3、lbTree.Text + @"unRar"是需要解压路径
                    myStartInfo = new ProcessStartInfo();
                    myStartInfo.FileName = myRar;
                    myStartInfo.Arguments = myInfo;
                    myStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    myProcess = new Process();
                    myProcess.StartInfo = myStartInfo;
                    myProcess.Start();
                    Response.Write("<font color=red>解压缩成功</font>");
                }
                catch (Exception ex)
                {
                    Response.Write(ex.ToString());
                }

            }       


    以下是rar命令语法说明

       从命令行也可以运行 WinRAR 命令,常规的命令行语法描述如下:

      WinRAR  <命令> -<开关1> -<开关N> <压缩文件> <文件...> <@列表文件...> <解压路径\>

    命令 要 WinRAR 运行的字符组合代表功能
    开关 切换操作指定类型,压缩强度,压缩文件类型,等等的定义。
    压缩文件 要处理的压缩文件名。
    文件 要处理的文件名。
    列表文件 列表文件是包含要处理文件名称的纯文本。文件名应该在第一卷启动。可以在列表文件中使用//字符后添加注释。例如,你可以包含两列字符串创建 backup.lst:c:\work\doc\*.txt //备份文本文档     c:\work\image\*.bmp //备份图片c:\work\misc并接着运行: winrar a backup @backup.lst你可以在命令行中同时指定普通的文件名和列表文件名。
    解压路径 只与命令 e 和 x ,搭配使用。指出解压文件添加的位置。如果文件夹不存在时,会自动创建。
    注意事项
    a) 如果未指定 文件 或是 列表文件 时,WinRAR 将会以缺省的 *.* 运行全部的文件;
    b) 如果未指定压缩文件扩展名时,WinRAR 将会使用在 压缩配置 中选定的默认压缩文件格式。但你可以指定 .RAR 或 .ZIP 扩展名来替换它们;
    c) 在命令行所输入的开关会替换相同的配置设置值;
    d) 在命令 c、e、s、t、rr、k 和 x 可在压缩文件名中使用通配符。如此可以用单个的命令来进行超过一个以上的压缩文件,除此之外,如果你指定 -r 开关于这些命令时,它们将会搜索在子文件夹中的压缩文件;

    e) 某些命令和开关只应用在 RAR 压缩文件,有些则在 RAR 和 ZIP 都可使用,而某些则可应用在全部的压缩文件格式。这一些都得看压缩文件格式所提供的特性而定;
    f) 命令和开关的大小写是相同意思的,你可以用大写或者小写来下命令均可

  • 相关阅读:
    Redis的发布订阅
    Redis的事务
    Redis的持久化下
    Redis的持久化上
    Redis数据类型之Redis有序集合Zset(sorted set
    Redis数据类型之Redis哈希(Hash)
    Redis数据类型之Redis集合(Set)
    LeetCode#53-最大子序和
    LeetCode#442-数组中的重复数据
    LeetCode#1014-最佳观光组合
  • 原文地址:https://www.cnblogs.com/skylaugh/p/1652460.html
Copyright © 2020-2023  润新知