记录下关于调用RAR解压缩的问题

记录下关于调用RAR解压缩的问题

第二次写代码关系到调用RAR实现解压缩了。还是记录下来一下问题。

第一次是写Demo,试验通过RAR解压缩实现网站升级覆盖。

第一次写时遇到的问题记录:

1。在XP下,在Web中解压覆盖正在运行的Asp.net程序目录(自身覆盖自身)。出错-》异常是进程内自己无法覆盖自己

解决过程是:以为通过创建应用程序域来解决这问题,失败!

接着把项目放到Win 2003 桌面上,调用解压,能解压,但乱七八糟的不知道解压了什么东西出来了。

原因是:桌面涉及到多个用户问题,放到CDEF盘就正常了。

然后把项目放到Win 2003 其它一个盘中,解压正常。

原因应该是:XP的IIS和Win 2003的IIS原理的不同。xp是单进程,2003是多进程。

 

第二次就是在做Winform安装包时。

通过调用RAR解压安装项目,出现问题:

1。解压路径中带有空格,所以出错,弄了很久才发现。

解决就是如果路径有空格,加双引号包起来。

2。网上的命令行没有后台运行参数

解决就是单独搜索,最后找到一条“-ibck”

 

发一下代码:

 

记录下关于调用RAR解压缩的问题
ExpandedBlockStart.gif
代码

复制代码
public 
bool WARToFoler(
string rarFromPath, 
string rarToPath)

        {

            Process rarPro = 
new Process();

            rarPro.StartInfo.FileName = AppConfig.SoftSetup_WinRARSystemPath;

            rarPro.StartInfo.Arguments = 
string.Format(
“
 x  \
“{
0}\
“
 \
“{
1}\
“
 -o+ -r -ibck
“, rarFromPath, rarToPath);

            rarPro.StartInfo.UseShellExecute = 
false;

            rarPro.StartInfo.RedirectStandardInput = 
true;

            rarPro.StartInfo.RedirectStandardOutput = 
true;

            rarPro.StartInfo.RedirectStandardError = 
true;

            rarPro.StartInfo.CreateNoWindow = 
true;

            rarPro.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

            rarPro.OutputDataReceived += 
new System.Diagnostics.DataReceivedEventHandler(p_OutputDataReceived);

            rarPro.ErrorDataReceived += 
new DataReceivedEventHandler(rarPro_ErrorDataReceived);

            rarPro.Start();
//
解压开始  

            rarPro.BeginOutputReadLine();

            rarPro.BeginErrorReadLine();

            rarPro.WaitForExit();

            rarPro.Dispose();

            
return IsOK;

        }

        
void rarPro_ErrorDataReceived(
object sender, DataReceivedEventArgs e)

        {

            
if (e.Data!=
null && e.Data != 
“”)

            {

                outMsg.Text += 
“
失败:
“ + e.Data + 
“
\r\n
“;

                IsOK = 
false;

            }

        }

        
void p_OutputDataReceived(
object sender, System.Diagnostics.DataReceivedEventArgs e)

        {

            
if (e.Data != 
null && e.Data != 
“”)

            {

                outMsg.Text+=
“
成功:
“ + e.Data + 
“
\r\n
“;

            }

        }
复制代码

 

 

RAR参数命令我就不弄上来了,听说RAR安装目录的帮助文档下就有:我装的破解版打不开。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109017.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RSA加密算法简介[通俗易懂]

    RSA加密算法简介[通俗易懂]背景RSA加密算法是公钥密码最著名的算法之一,是由MIT三位(RonRivest,AdiShamir,LenAdleman)提出的,也就以三位的名字首字母命名。该算法的理论基础是“大数分解和素数检测“,如果说有一天,大数分解和素数检测的数学理论被证明可以简单解决,那么RSA算法的加密将没有任何意义。有提出说量子计算机的出现可以大大提高RSA的破解效率。下面我们将简单学习RSA加密算法的

    2022年5月3日
  • salesforce使用方法(salesforce authenticator下载)

    //获取SalesforceTokenpublicStringgetSalesforceToken(){StringgetTokenUrl=’https://login.salesforce.com/services/oauth2/token’;Stringgrant_type=’password’;Str…

    2022年4月14日
  • pycharm2021.11永久激活【中文破解版】

    (pycharm2021.11永久激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1M3Q9SD5XW-eyJsaWN…

    2022年3月28日
  • 三种JS截取字符串方法

    三种JS截取字符串方法转载: https://www.cnblogs.com/zccfun/p/6054533.htmlJS提供三个截取字符串的方法,分别是:slice(),substring()和substr(),它们都可以接受一个或两个参数:varstmp="rcinn.cn";使用一个参数alert(stmp.slice(3));//从第4个字符开始,截取到最后个字符;返回"nn.cn"a…

    2022年4月29日
  • python3获取Elasticsearch数据库数据

    python3获取Elasticsearch数据库数据python3获取Elasticsearch数据库数据采用scoll滚动搜索,scoll搜索会在第一次搜索的时候保存一个当时的视图快照,之后只会基于该旧的视图快照提供数据搜索,这个期间数据变更,用户是看不到的,每次发送scoll请求,需要指定一个scoll参数,指定一个时间窗口,每次搜索请求只要在这个时间窗口内完成就可以了。1.python利用scroll_id游标遍历查询es,获取错误日志路…

    2022年5月10日
  • ubuntu18.04怎么设置中文_电脑全英文怎么换中文

    ubuntu18.04怎么设置中文_电脑全英文怎么换中文本文介绍如何将Ubuntu18.04安装后的英文界面,更改为中文界面,即系统语言由英文改为简体中文。注意,与安装中文输入法不同,两者也没有冲突。首先进入设置(Setting),选择区域和语言(Reg

    2022年8月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号