記錄下關於呼叫RAR解壓縮的問題

2021-09-23 11:26:53 字數 1800 閱讀 2162

第二次寫**關係到呼叫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"

發一下**:

public

bool

wartofoler(

string

rarfrompath, 

string

rartopath)\"

\"\"

-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)

}void

p_outputdatareceived(

object

sender, system.diagnostics.datareceivedeventargs e)}

rar引數命令我就不弄上來了,聽說rar安裝目錄的幫助文件下就有:我裝的破解版打不開。

Linux 壓縮 解壓縮RAR檔案

安裝 sudo apt get install unrar 解除安裝 sudo apt get remove unrar e將檔案解壓到當前目錄 例 rar e test.rar 注 用e解壓的話,不僅原來的file1.txt和file2.txt被解壓到當前目錄,就連dir1裡面的所有檔案也被解壓到...

Ubuntu 壓縮 解壓縮RAR檔案

在ubuntu 16.04下經常要用到壓縮 解壓縮rar檔案,每次都是網上搜尋教程,而且都沒有詳細解析每個命令的具體用法,現在詳細記下方法,以備再次用的時候方便的找到。因為 引數 e 和 x 經常用錯,特意記錄在此。ubuntu剛安裝的時候是不能解壓rar檔案的,只有在安裝了解壓工具之後,才可以解壓...

關於壓縮和解壓縮

從http www.icsharpcode.net 首先需要在專案裡引用sharpziplib.dll。然後修改其中的關於壓縮和解壓縮的類。實現原始碼如下 壓縮檔案 using system using system.io using icsharpcode.sharpziplib.checksum...