程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#挪用WinRar履行rar、zip緊縮的辦法

C#挪用WinRar履行rar、zip緊縮的辦法

編輯:C#入門知識

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#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved