1. 程式人生 > >C# 客戶端rar/zip檔案解壓縮

C# 客戶端rar/zip檔案解壓縮

說明:

(1)下載winrar.exe,安裝到指定路徑,例如:D:\WINRAR,之後把安裝的資料夾(D:\WINRAR)拷貝到應用程式根目錄;

(2)具體方法如下(注意方法中的路徑):

/// <summary>
        /// 解壓RAR和ZIP檔案(需存在Winrar.exe(專案根目錄存在 winrar.exe)
        /// </summary>
        /// <param name="pathRar">壓縮檔案絕對路徑(包括檔名稱)</param>
        /// <param name="deDir">解壓目錄</param>
        /// <param name="errInfo">異常資訊</param>
        /// <param name="pwd">解壓密碼</param>
        /// <param name="isCover">所解壓的檔案是否會覆蓋已存在的檔案(如果不覆蓋,所解壓出的檔案和已存在的相同名稱檔案不會共同存在,只保留原已存在檔案)</param>
        /// <returns>true(解壓成功);false(解壓失敗)</returns>
        public static bool DeCompressRarOrZip(string pathRar, string deDir, out string errInfo, string pwd = "", bool isCover = true)
        {
            errInfo = "";
            try
            {
                if (!Directory.Exists(deDir))
                    Directory.CreateDirectory(deDir);

                StringBuilder sb = new StringBuilder();
                sb.Append(" x");
                if (!string.IsNullOrWhiteSpace(pwd))
                    sb.Append($" -p{pwd}");
                sb.Append(isCover ? " -o+" : " -o-");
                sb.Append($" \"{pathRar}\"");
                sb.Append($" \"{deDir}\"");
                sb.Append(" -y");

                string winRarPath = 
[email protected]
"{AppDomain.CurrentDomain.BaseDirectory}Winrar\WinRAR.exe"; using (Process pro = new Process()) { ProcessStartInfo psInfo = new ProcessStartInfo { //重定向輸入(一定是true) RedirectStandardInput = true, //重定向輸出 RedirectStandardOutput = true, RedirectStandardError = true, //不使用系統shell外殼程式啟動 UseShellExecute = false, //EXE路徑 FileName = winRarPath, //命令 Arguments = sb.ToString(), //不建立窗體 CreateNoWindow = true, WindowStyle = ProcessWindowStyle.Hidden }; pro.StartInfo = psInfo; pro.Start(); pro.WaitForExit(); int code = pro.ExitCode; return code == 0; } } catch (Exception ex) { errInfo = $"解壓失敗。\r\n詳細資訊:{ ex.Message}"; return false; } }

相關推薦

C# 客戶rar/zip檔案壓縮

說明: (1)下載winrar.exe,安裝到指定路徑,例如:D:\WINRAR,之後把安裝的資料夾(D:\WINRAR)拷貝到應用程式根目錄; (2)具體方法如下(注意方法中的路徑): //

Android zip檔案壓縮工具類

今天專案提了一個新需求:把html網頁放在本地,如果後臺修改了網頁,手機端要去後臺下載壓縮包並解壓後把本地的網頁跟新成最新的,請求後臺介面,根據返回的結果中的某個欄位判斷是否需要下載zip檔案,如果需要下載,返回的結果中會提供zip檔案下載的地址,下載後並解壓顯示網頁,既然需

C#.網路程式設計 Socket基礎(四) WPF系統Socket TCP協議 伺服器與客戶 不同型別檔案傳輸,同時解決UI執行緒與工作執行緒的卡頓問題

一、簡介 雖然,本文的前面幾篇文章在WinForm中實現了Socket TCP協議 伺服器與客戶端 不同型別檔案傳輸,詳情見 但是,卻沒有在WPF中實現 Socket TCP協議 伺服器與客戶端 不同型別檔案傳輸。因此,本文將描述如何在WPF中實現該功能。

Mac zip檔案錯誤:無法將"*.zip"壓縮到"" (錯誤 1-操作不被允許)

錯誤提示:   無法將"*.zip"解壓縮到"" (錯誤 1-操作不被允許)或者 解壓縮失敗   英文提示: "Unable to unarchive into file path" (Error 1 - Operation not permitted.) o

linux c伺服器與客戶之間的檔案傳輸

最近做了一下linux C網路方面的專案,簡單的寫了一下伺服器於客戶端之間上傳,下載檔案,利用併發伺服器,可以實現多個客戶端同時上傳,下載。 寫的不好,還請大神多多指教!多的不說,一切都在程式碼中,部分程式碼如下所示: /*server.c */ 伺服器端 void *re

java生成zip壓縮檔案,壓縮檔案

public static void main(String[] args) { try { // testZip("c:\\temp.txt", "c:\\temp4.zip"); // testZip("c:\\Result.txt", "c:

zip檔案壓或壓縮

<span style="font-size:18px;">/** * lsz */ public final class ZipUtil { /** * 解壓zip檔案 * @param unZipfile * @param destFil

通過調用支付寶查詢對賬單接口返回bill_download_url下載zip壓縮

read new edi p2s turn zipentry path public ipa 通過url下載zip對賬單文件,進行解壓。 讀取壓縮文件內容 import java.io.BufferedOutputStream; import java.io.Buffer

C#客戶用HTTP上傳文件到Java服務器

lnp mime類型 timeout pat tle html 大小 首部 doctype 在C#客戶端用HTTP上傳文件到Java服務器 來源:http://www.cnblogs.com/AndyDai/p/5135294.html 最近在做C / S 開

C# 客戶程序調用外部程序的三種實現

type HA RM num box system hwnd 支持 inter 簡介 我們用C#來開發客戶端程序的時候,總會不可避免的需要調用外部程序或者訪問網站,本篇博客介紹了三種調用外部應用的方法,供參考 實現 第一種是利用shel

如何解決rar文件壓縮失敗

repair 地址 方便 documents 拷貝 需要 連續 pos 有著 附件經常會是一系列的壓縮文件,下載是默認文件名是一個隨機數字。因而下載完會出現壓縮文件解壓縮失敗解決方法:下載時重命名為帶一定順序的文件名,如文件1,文件2,

Redis C客戶Hiredis代碼分析

-s sta 代碼分析 sge immediate sap pat process serve 初始化 redisContext - Redis連接的上下文 /* Context for a connection to Redis */ typedef struct re

(已解決)c# 客戶程式訪問oracle報錯:ORA-12154: TNS: 無法處理服務名

錯誤:ORA-12154: TNS: 無法處理服務名 這個錯誤大家在百度上一搜一大把,但是我出現這個錯誤的原因跟百度不太一樣,我的客戶端程式在不同的目錄可以正常執行,但在其中1個目錄就是要出錯,因此我想到是目錄路徑中出了問題,既然是路徑那就只能是資料夾名有什麼特殊之處導致不能執行,後來發現不能執

在centos7部署etcd v3的c++客戶

1. wget -c https://cmake.org/files/v3.11/cmake-3.11.2.tar.gz 2.https://github.com/Microsoft/cpprestsdk/wiki/How-to-build-for-Linux submodule update

[HDFS-inotify]“IOException:客戶在讀取檔案後停止

1.我想寫下一個在建立時在特定位置讀取檔案的程式碼(使用inotify)     所以我在github中修改了基於“hdfs-inotify-example”的示例程式碼https://github.com/onefoursix/ HDFS-的inotify-示例/

C#高效能大容量SOCKET併發完成埠例子(有C#客戶)完整例項原始碼

遙望星空 好好幹,有前途! 部落格園 首頁 新隨筆 聯絡 管理 訂閱 隨筆- 1082  文章- 0  評論- 151  C#高效能大容量SOCKET併發(轉) C#高效能大容量SOCKET併發(零):程式碼結

51 信用卡管家 Android 客戶內部資料庫檔案可被盜取

原文: 真的安全嗎之51信用卡管家Android客戶端審計報告 1.講這個漏洞先要介紹一下一個安卓系統特性:db-journal 檔案是 sqlite 的一個臨時的日誌檔案,主 要用於 sqlite 事務回滾機制,在事務開始時產生,在事務結束時刪除;當程式發生崩潰或者系統斷 電時該檔案將留

Linux下檔案壓縮、軟體安裝

1、linux常用解壓縮命令:.zip格式  解壓:unzip  檔名.zip   壓縮:zip  檔名.zip  目錄名 .tar格式  壓縮:tar  cvf  檔名.tar  檔名

java 關於zip檔案壓工具類,後續一直更新

前幾天在網上看到過這種,但是覺得還是不怎麼通用, 就自己瞭解原理嘗試的寫了個工具類,希望大家多多指點,不說多了上程式碼了: package com.bdt.framework.zip; import org.slf4j.Logger; import org.slf4j.Logger

redis記憶體資料庫C客戶hiredis API 中文說明

A)編譯安裝 make make install (/usr/local) make install PREFIX=$HOME/progs(可以自由指定安裝路徑) B)同步的API介面 redisContext *redisConnect(const char *ip, int port