| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1144 人关注过本帖, 1 人收藏
标题:压缩与解压缩
只看楼主 加入收藏
yutianyi
Rank: 2
等 级:论坛游民
帖 子:113
专家分:12
注 册:2008-7-18
结帖率:90.91%
收藏(1)
 问题点数:0 回复次数:7 
压缩与解压缩
怎样把一个压缩包上传到服务器后进行解压缩,怎样把服务器上的文件进行压缩。
哪位高手能够详细的讲讲,3QU!!!
搜索更多相关主题的帖子: 压缩 
2008-10-22 11:09
hebingbing
Rank: 6Rank: 6
来 自:黄土高坡
等 级:贵宾
威 望:27
帖 子:3417
专家分:371
注 册:2007-10-22
收藏
得分:0 
其前期是服务器上安装了rar压缩工具,然后调用该工具压缩及解压缩……
2008-10-22 12:48
hebingbing
Rank: 6Rank: 6
来 自:黄土高坡
等 级:贵宾
威 望:27
帖 子:3417
专家分:371
注 册:2007-10-22
收藏
得分:0 
//压缩
    protected void btnY_Click(object sender, EventArgs e)
    {
        string rar;
        RegistryKey reg;
        string args;
        ProcessStartInfo procStart;
        Process process;
        try
        {
            reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\Shell\Open\Command");
            rar = reg.GetValue("").ToString();//获取注册表rar安装路径
            reg.Close();
            rar = rar.Substring(1, rar.Length - 7);//获取rar安装路径
            args = "a -inul -y G:\\temp.rar G:\\1.txt";//这里为rar的压缩命令格式(也可以自行扩展)
            procStart = new ProcessStartInfo();
            procStart.FileName = rar;
            procStart.Arguments = args;//参数
            procStart.WindowStyle = ProcessWindowStyle.Hidden;//窗口状态
            procStart.WorkingDirectory = Server.MapPath(""); ;//获取或设置要启动的进程的初始目录。
            process = new Process();
            process.StartInfo = procStart;
            process.Start();
            Response.Write("<script>alert('压缩成功')</script>");
        }
        catch (Exception ex)
        {
            Response.Write(ex.ToString());
        }
    }
    //解压
    protected void btnJ_Click(object sender, EventArgs e)
    {
        string rar;
        RegistryKey reg;
        string args;
        ProcessStartInfo startInfo;
        Process process;
        try
        {
            reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRar.exe\Shell\Open\Command");
            rar = reg.GetValue("").ToString();
            reg.Close();
            rar = rar.Substring(1, rar.Length - 7);
            args = " X E:\\temp.rar E:\\";
            startInfo = new ProcessStartInfo();
            startInfo.FileName = rar;
            startInfo.Arguments = args;
            startInfo.WindowStyle = ProcessWindowStyle.Hidden;
            process = new Process();
            process.StartInfo = startInfo;
            process.Start();
            Response.Write("<script>alert('解压成功')</script>");
        }
        catch (Exception ex)
        {
            Response.Write(ex.ToString());
        }
    }
2008-10-22 12:48
hebingbing
Rank: 6Rank: 6
来 自:黄土高坡
等 级:贵宾
威 望:27
帖 子:3417
专家分:371
注 册:2007-10-22
收藏
得分:0 
例:把E:\web\目录下的所有东西打包为1.rar放到E:\web\目录下,以便下载
    "C:\Program Files\WinRAR\Rar.exe" a -k -r -s -m1 E:\web\1.rar E:\web\
参数说明:
    a 添加文件到压缩文件中
    -k 锁定压缩文件
    -s产生固体存档,这样可以增大压缩比
    -r包括子目录
    -m1 设置压缩比
       -m0   存储      添加到压缩文件时不压缩文件。
       -m1   最快      使用最快方式(低压缩)
       -m2   较快      使用快速压缩方式
       -m3   标准      使用标准(默认)压缩方式
       -m4   较好      使用较好压缩方式(较好压缩,但是慢)
       -m5   最好      使用最大压缩方式(最好的压缩,但是最慢)
2008-10-22 12:49
铲铲
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:506
专家分:0
注 册:2006-5-2
收藏
得分:0 
其实不用,微软在.net3.0以后为我们提供了System.Package命名空间,当初提供该命名空间,主要是为迎合新一代Office声称的文件(是个文件集ZIP压缩包),可以针对ZIP算法标准执行压缩和解压。但是不支持RAR算法,因为RAR算法是共享的,需要支付版权费,而ZIP算法则是行业标准。
关于这个命名空间,我也在学习过程中。可以供你参考

铲铲是也
2008-10-22 21:53
yutianyi
Rank: 2
等 级:论坛游民
帖 子:113
专家分:12
注 册:2008-7-18
收藏
得分:0 
谢谢hebingbing,铲铲,不过产生的进程好像没有关掉,我在后面加了个process.Kill()却又不能压缩解压。
这个问题又怎么解决?
2008-10-23 14:54
yutianyi
Rank: 2
等 级:论坛游民
帖 子:113
专家分:12
注 册:2008-7-18
收藏
得分:0 
还有就是命令里是不是一定要用绝对路径?
2008-10-23 15:34
yutianyi
Rank: 2
等 级:论坛游民
帖 子:113
专家分:12
注 册:2008-7-18
收藏
得分:0 
路径的问题用Server.MapPath解决了,现在郁闷的是进程没有关掉
2008-10-23 16:20
快速回复:压缩与解压缩
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030514 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved