C#挪用WinRar履行rar、zip緊縮的辦法。本站提示廣大學習愛好者:(C#挪用WinRar履行rar、zip緊縮的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#挪用WinRar履行rar、zip緊縮的辦法正文
本文實例講述了C#挪用WinRar履行rar、zip緊縮的辦法。分享給年夜家供年夜家參考。詳細以下:
斷定體系能否裝置了winrar
/// <summary> /// 驗證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對象供會見操作 winRarPath = registryKey.GetValue("").ToString(); //這裡為勤儉資本,直接前往途徑,橫豎上面也沒用到 registryKey.Close();//封閉注冊表 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; //驗證WinRar能否裝置。 var pathInfo = String.Format("a -afzip -m0 -ep1 \"{0}\" \"{1}\"", rarName, path); #region WinRar 用到的敕令正文 //[a] 添加到緊縮文件 //afzip 履行zip緊縮方法,便利用戶在分歧情況下應用。 //(撤消該參數則履行rar緊縮) //-m0 存儲 添加到緊縮文件時不緊縮文件。共6個級別【0-5】,值越年夜後果越好,也越慢 //ep1 依稱號消除主目次(生成的緊縮文件不會湧現不用要的層級) //r 修復緊縮檔案 //t 測試緊縮檔案內的文件 //as 同步緊縮檔案內容 //-p 給緊縮文件加暗碼方法為:-p123456 #endregion //打包文件寄存目次 var process = new Process { StartInfo = new ProcessStartInfo { FileName = winRarPath,//履行的文件名 Arguments = pathInfo,//須要履行的敕令 UseShellExecute = false,//應用Shell履行 WindowStyle = ProcessWindowStyle.Hidden,//隱蔽窗體 WorkingDirectory = rarPath,//rar 寄存地位 CreateNoWindow = false,//不顯示窗體 }, }; process.Start();//開端履行 process.WaitForExit();//期待完成並加入 process.Close();//封閉挪用 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 ""; //驗證WinRar能否裝置。 if (Directory.Exists(unRarPath) == false) { Directory.CreateDirectory(unRarPath); } var pathInfo = "x " + rarName + " " + unRarPath + " -y"; var process = new Process { StartInfo = new ProcessStartInfo { FileName = winRarPath,//履行的文件名 Arguments = pathInfo,//須要履行的敕令 UseShellExecute = false,//應用Shell履行 WindowStyle = ProcessWindowStyle.Hidden,//隱蔽窗體 WorkingDirectory = rarPath,//rar 寄存地位 CreateNoWindow = false,//不顯示窗體 }, }; process.Start();//開端履行 process.WaitForExit();//期待完成並加入 process.Close();//封閉挪用 cmd 的甚麼甚麼 } catch (Exception ex) { throw ex; } return unRarPath; }
願望本文所述對年夜家的C#法式設計有所贊助。