C#調(diào)用WinRar執(zhí)行rar、zip壓縮的方法
更新時(shí)間:2015年05月13日 10:42:39 作者:令狐不聰
這篇文章主要介紹了C#調(diào)用WinRar執(zhí)行rar、zip壓縮的方法,涉及C#針對winrar的判斷與調(diào)用技巧,需要的朋友可以參考下
本文實(shí)例講述了C#調(diào)用WinRar執(zhí)行rar、zip壓縮的方法。分享給大家供大家參考。具體如下:
判斷系統(tǒng)是否安裝了winrar
/// <summary> /// 驗(yàn)證WinRar是否安裝。 /// </summary> /// <returns>true:已安裝,false:未安裝</returns> private static bool ExistsRar(out String winRarPath) { winRarPath = String.Empty; //通過Regedit(注冊表)找到WinRar文件 var registryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe"); if (registryKey == null) return false;//未安裝 //registryKey = theReg;可以直接返回Registry對象供會(huì)面操作 winRarPath = registryKey.GetValue("").ToString(); //這里為節(jié)約資源,直接返回路徑,反正下面也沒用到 registryKey.Close();//關(guān)閉注冊表 return !String.IsNullOrEmpty(winRarPath); }
壓縮
/// <summary> /// 生成Zip /// </summary> /// <param name="path">文件夾路徑</param> /// <param name="rarPath">生成壓縮文件的路徑</param> /// <param name="rarName">生成壓縮文件的文件名</param> public static void CompressRar(String path, String rarPath, String rarName) { try { String winRarPath = null; if (!ExistsRar(out winRarPath)) return; //驗(yàn)證WinRar是否安裝。 var pathInfo = String.Format("a -afzip -m0 -ep1 \"{0}\" \"{1}\"", rarName, path); #region WinRar 用到的命令注釋 //[a] 添加到壓縮文件 //afzip 執(zhí)行zip壓縮方式,方便用戶在不同環(huán)境下使用。 //(取消該參數(shù)則執(zhí)行rar壓縮) //-m0 存儲 添加到壓縮文件時(shí)不壓縮文件。共6個(gè)級別【0-5】,值越大效果越好,也越慢 //ep1 依名稱排除主目錄(生成的壓縮文件不會(huì)出現(xiàn)不必要的層級) //r 修復(fù)壓縮檔案 //t 測試壓縮檔案內(nèi)的文件 //as 同步壓縮檔案內(nèi)容 //-p 給壓縮文件加密碼方式為:-p123456 #endregion //打包文件存放目錄 var process = new Process { StartInfo = new ProcessStartInfo { FileName = winRarPath,//執(zhí)行的文件名 Arguments = pathInfo,//需要執(zhí)行的命令 UseShellExecute = false,//使用Shell執(zhí)行 WindowStyle = ProcessWindowStyle.Hidden,//隱藏窗體 WorkingDirectory = rarPath,//rar 存放位置 CreateNoWindow = false,//不顯示窗體 }, }; process.Start();//開始執(zhí)行 process.WaitForExit();//等待完成并退出 process.Close();//關(guān)閉調(diào)用 cmd 的什么什么 } catch (Exception ex) { throw ex; } }
解壓
/// <summary> /// 解壓 /// </summary> /// <param name="unRarPath">文件夾路徑</param> /// <param name="rarPath">壓縮文件的路徑</param> /// <param name="rarName">壓縮文件的文件名</param> /// <returns></returns> public static String UnCompressRar(String unRarPath, String rarPath, String rarName) { try { String winRarPath = null; if (!ExistsRar(out winRarPath)) return ""; //驗(yàn)證WinRar是否安裝。 if (Directory.Exists(unRarPath) == false) { Directory.CreateDirectory(unRarPath); } var pathInfo = "x " + rarName + " " + unRarPath + " -y"; var process = new Process { StartInfo = new ProcessStartInfo { FileName = winRarPath,//執(zhí)行的文件名 Arguments = pathInfo,//需要執(zhí)行的命令 UseShellExecute = false,//使用Shell執(zhí)行 WindowStyle = ProcessWindowStyle.Hidden,//隱藏窗體 WorkingDirectory = rarPath,//rar 存放位置 CreateNoWindow = false,//不顯示窗體 }, }; process.Start();//開始執(zhí)行 process.WaitForExit();//等待完成并退出 process.Close();//關(guān)閉調(diào)用 cmd 的什么什么 } catch (Exception ex) { throw ex; } return unRarPath; }
希望本文所述對大家的C#程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- Windows系統(tǒng)中C#調(diào)用WinRAR來壓縮和解壓縮文件的方法
- C#中使用WinRAR實(shí)現(xiàn)加密壓縮及解壓縮文件
- c#調(diào)用winrar解壓縮文件代碼分享
- C#文件流進(jìn)行壓縮和解壓縮的方法
- C#使用GZipStream解壓縮數(shù)據(jù)文件的方法
- C#使用DeflateStream解壓縮數(shù)據(jù)文件的方法
- asp.net C#實(shí)現(xiàn)解壓縮文件的方法
- C#實(shí)現(xiàn)GZip壓縮和解壓縮入門實(shí)例
- C#使用WinRar命令進(jìn)行壓縮和解壓縮操作的實(shí)現(xiàn)方法
相關(guān)文章
C#中的應(yīng)用程序接口介紹及實(shí)現(xiàn),密封類與密封方法
今天小編就為大家分享一篇關(guān)于C#中的應(yīng)用程序接口介紹及實(shí)現(xiàn),密封類與密封方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10C#?Unity使用正則表達(dá)式去除部分富文本的代碼示例
正則表達(dá)式在我們?nèi)粘i_發(fā)中的用處不用多說了吧,下面這篇文章主要給大家介紹了關(guān)于C#?Unity使用正則表達(dá)式去除部分富文本的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03