c#調用 WinRAR.exe以命令列形式實現檔案、檔案夾的解壓縮

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   檔案   

在實際項目應用中會偶爾使用檔案的壓縮上傳以及伺服器端的加壓處理,故寫此文記錄以備不時之需.

1.自己編寫的ZipHelper類.

 1 public static class ZipHelper 2     { 3         private static string pathExe = AppDomain.CurrentDomain.BaseDirectory + @"Resource\WinRAR.exe"; 4         /// <summary> 5         /// 使用Gzip方法壓縮檔 6         /// </summary> 7         /// <param name="sourcefilename"></param> 8         /// <param name="zipfilename"></param> 9         /// <returns></returns>10         public static bool GZipFile(string sourcefilename, string zipfilename)11         {12             bool isSucc = false;13             //拼接壓縮命令參數14             string args = string.Format("a -as -r -afzip -ed -ibck -inul -m5 -mt5 -ep1 {0} {1}", zipfilename, sourcefilename);  15           16             //啟動壓縮排程17             isSucc = ProcessHelper.StartProcess(pathExe,args);18             return isSucc;19         }20 21         /// <summary>22         /// 使用GZIP解壓檔案的方法23         /// </summary>24         /// <param name="zipfilename"></param>25         /// <param name="unzipfilename"></param>26         /// <returns></returns>       27         public static bool UnGzipFile(string zipfilename, string unzipfilename)28         {29             bool isSucc = false;30             if (!Directory.Exists(unzipfilename))31             {32                 Directory.CreateDirectory(unzipfilename);33             }34             //拼接解壓命令參數35             string args = string.Format("x -ibck -inul -y -mt5 {0} {1}", zipfilename, unzipfilename); 36            37             //啟動解壓進程38             isSucc = ProcessHelper.StartProcess(pathExe, args);39             return isSucc;40         }41     }

2.用到的ProcessHelper類.

 1 public class ProcessHelper 2     { 3         /// <summary> 4         /// 啟動進程執行exe 5         /// </summary> 6         /// <param name="exePath">exe路徑</param> 7         /// <param name="exeArgs">exe所需參數</param> 8         /// <returns></returns> 9         public static bool StartProcess(string exePath,string exeArgs)10         {11             bool isHidden = true;12             bool isSucc   = true;13             Process process = new Process();14             process.StartInfo.FileName = exePath;15             process.StartInfo.Arguments = exeArgs;16             if (isHidden)17             {18                 process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;19                 process.StartInfo.CreateNoWindow = true;              20             }21             else22             {23                 process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;24                 process.StartInfo.CreateNoWindow = false;25             }         26             process.Start();27             int idx = 1;28             while (!process.HasExited)29             {30                 idx++;31                 process.WaitForExit(1000);32                 if (idx == 50)33                 {34                     process.Kill();35                     isSucc = false;36                 }37             }38             process.Close();39             process.Dispose();                          40             return isSucc;41         }42     }

3.WinRar相關命令解釋:

 /*              * <命令> -<開關1> -<開關N> <壓縮檔 > <檔案...> <@列表檔案...> <解壓路徑\>              *壓縮 a      a -as -r -afzip -ed -ibck -inul -m5 -mt5 -ep1 e:\text.zip d:\text.jpg             *解壓 x      x -ibck -inul -y -mt5 e:\text.zip e:\text             *a d:\Info.zip D:\easyui              *-af 指定格式 -afzip -afrar              *-as 在當前添加的檔案清單中不存在的被壓縮檔,將會從壓縮檔中刪除              *-df 壓縮後刪除源檔案              *-dr 刪除到資源回收筒              *-ed 不添加空檔案夾              *-hp 添加密碼 -hp123456              *-ibck 後台運行              *-inul 禁止錯誤資訊              *-loff 壓縮完成後 關閉電源              *-m0 儲存 添加檔案到壓縮檔但是不壓縮                *-m1 最快 最快速的方法 ( 最低的壓縮比)               *-m2 快速 快速壓縮方法               *-m3 標準 標準 (預設 ) 壓縮方法               *-m4 較好 較好的壓縮方法 (較高的壓縮比)               *-m5 最優 最優的壓縮方法 (最高壓縮比但是速度也最慢)              *-mtN 線程 -mt5 1~32              *-or 自動重新命名檔案              *-r 連同子檔案              *-z 壓縮後測試檔案              *-y 所有彈窗選擇"是"              */  4.官方相關解壓縮命令列解釋: 5.使用方法,拷貝WinRar.exe到你的工程指定目錄即可直接調用.
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.