C 呼叫WinRar執行rar zip壓縮

2021-06-11 12:33:12 字數 1942 閱讀 3381

先來簡單說說壓縮檔案的好處,既然要用到那還是知道點好。

1、節約硬碟資源,方便管理

下面的**所執行的壓縮是儲存壓縮,

對於檔案的大小控制的不是那麼嚴格,

但是對於節約硬碟資源的原理是從磁碟的扇區角度上來說的。

2、便於傳輸

大家都知道用qq或其他工具傳輸資源時,

壓縮檔案明顯要快些。

由於檔案太散程式也比較累。

其原理也是因為磁碟尋道要話時間

/// /// 驗證winrar是否安裝。

///

/// true:已安裝,false:未安裝

private static bool existsrar(out string winrarpath)

該方法不要用於判斷使用者是否安裝winrar,

以判斷是否繼續執行一下**

/// /// 生成zip

///

/// 資料夾路徑

/// 生成壓縮檔案的路徑

/// 生成壓縮檔案的檔名

public static void compressrar(string path, string rarpath, string rarname)

\" \"\"", rarname, path);

#region winrar 用到的命令注釋

//[a] 新增到壓縮檔案

//afzip 執行zip壓縮方式,方便使用者在不同環境下使用。(取消該引數則執行rar壓縮)

//-m0 儲存 新增到壓縮檔案時不壓縮檔案。共6個級別【0-5】,值越大效果越好,也越慢

//ep1 依名稱排除主目錄(生成的壓縮檔案不會出現不必要的層級)

//r 修復壓縮檔案

//t 測試壓縮檔案內的檔案

//as 同步壓縮檔案內容

//-p 給壓縮檔案加密碼方式為:-p123456

#endregion

//打包檔案存放目錄

var process = new process,};

process.start();//開始執行

process.waitforexit();//等待完成並退出

process.close();//關閉呼叫 cmd 的什麼什麼

}catch (exception ex)

}

配合上面方法成功完成zip壓縮。

本來還想加是上乙個新增注釋的功能,

但是在網上找到的都是通過檔案新增注釋,這種方式不是我想要的。

由於時間關係暫時放下了。

下面再貼乙個解壓的方法,由於現在還沒有用到解壓的功能,

所以以下方法還未經測試。

/// /// 解壓

///

/// 資料夾路徑

/// 壓縮檔案的路徑

/// 壓縮檔案的檔名

///

public static string uncompressrar(string unrarpath, string rarpath, string rarname)

var pathinfo = "x " + rarname + " " + unrarpath + " -y";

var process = new process,};

process.start();//開始執行

process.waitforexit();//等待完成並退出

process.close();//關閉呼叫 cmd 的什麼什麼

}catch (exception ex)

return unrarpath;

}

最後補充點,如果安裝了winrar而又不能呼叫成功,

試試將安裝目錄下的:rar.exe 檔案複製到 system32 下。

以上**都是通過網上的資源整合而來,並非原創

c 呼叫winrar解壓

之前用登錄檔呼叫總是出錯,所以這裡直接使用winrar的絕對路徑 利用 winrar 進行解壓縮 檔案解壓路徑 絕對 將要解壓縮的 rar 檔案的存放目錄 絕對路徑 將要解壓縮的 rar 檔名 包括字尾 public void unrar string path,string rarpath,str...

C 呼叫Winrar實現解壓縮

c 解壓rar壓縮檔案 測試通過 using system using system.collections.generic using system.text using system.io using microsoft.win32 using system.diagnostics namesp...

在程式中呼叫Winrar

winrar e e rarfile.rar e extract rar file winrar a e mydir e add rar file system.disnogic.process 可以用來啟動乙個新的程序,而且在啟動新程序的時候可以代引數.for exp order a newnam...