最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#調(diào)用WinRar執(zhí)行rar、zip壓縮的方法

 更新時間: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>
/// 驗證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();
 //這里為節(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;
  //驗證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 存儲 添加到壓縮文件時不壓縮文件。共6個級別【0-5】,值越大效果越好,也越慢
  //ep1 依名稱排除主目錄(生成的壓縮文件不會出現(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 "";
  //驗證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è)計有所幫助。

相關(guān)文章

  • Unity3D實(shí)現(xiàn)甜品消消樂游戲

    Unity3D實(shí)現(xiàn)甜品消消樂游戲

    這篇文章主要介紹了通過C# Unity3D繪制一個甜品消消樂游戲,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • C# 使用Tcp/Udp協(xié)議的示例代碼

    C# 使用Tcp/Udp協(xié)議的示例代碼

    這篇文章主要介紹了C# 使用Tcp/Udp協(xié)議的示例,文中代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • 深入了解c# 匿名類型

    深入了解c# 匿名類型

    這篇文章主要介紹了c# 匿名類型的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C# 6.0的屬性(Property)的語法與初始值詳解

    C# 6.0的屬性(Property)的語法與初始值詳解

    下面小編就為大家?guī)硪黄狢# 6.0的屬性(Property)的語法與初始值詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • C#預(yù)定義數(shù)據(jù)類型之值類型和引用類型介紹

    C#預(yù)定義數(shù)據(jù)類型之值類型和引用類型介紹

    這篇文章主要介紹了C#預(yù)定義數(shù)據(jù)類型之值類型和引用類型介紹,本文著重講解了引用類型中的object(對象)類型和string(字符串)類型,需要的朋友可以參考下
    2015-03-03
  • C#使用泛型隊列Queue實(shí)現(xiàn)生產(chǎn)消費(fèi)模式

    C#使用泛型隊列Queue實(shí)現(xiàn)生產(chǎn)消費(fèi)模式

    這篇文章介紹了C#使用泛型隊列Queue實(shí)現(xiàn)生產(chǎn)消費(fèi)模式的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • 淺談C#設(shè)計模式之開放封閉原則

    淺談C#設(shè)計模式之開放封閉原則

    這篇文章主要介紹了淺談C#設(shè)計模式之開放封閉原則,需要的朋友可以參考下
    2014-12-12
  • C#實(shí)現(xiàn)從PDF中提取表格的方法詳解

    C#實(shí)現(xiàn)從PDF中提取表格的方法詳解

    PDF是辦公中比較常見的一種文件格式,在工作中應(yīng)用也越來越普遍。今天為大家介紹一種通過C#/VB.NET代碼從PDF中提取表格內(nèi)容的方法,感興趣的可以動手嘗試一下
    2022-08-08
  • C#基于OLEDB獲取Excel文件表結(jié)構(gòu)信息的方法

    C#基于OLEDB獲取Excel文件表結(jié)構(gòu)信息的方法

    這篇文章主要介紹了C#基于OLEDB獲取Excel文件表結(jié)構(gòu)信息的方法,結(jié)合實(shí)例形式分析了OLEDB的調(diào)用及Excel的相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • C# DataTable分頁處理實(shí)例代碼

    C# DataTable分頁處理實(shí)例代碼

    有時候我們從數(shù)據(jù)庫獲取的數(shù)據(jù)量太大,而我們不需要一次性顯示那么多的時候,我們就要對數(shù)據(jù)進(jìn)行分頁處理了,讓每頁顯示不同的數(shù)據(jù)。
    2017-06-06

最新評論

松溪县| 广汉市| 南宁市| 蕲春县| 射阳县| 田东县| 呈贡县| 沧州市| 双柏县| 巴中市| 辉南县| 香港| 太仓市| 伊金霍洛旗| 昌宁县| 犍为县| 武安市| 陕西省| 长宁区| 宜昌市| 抚宁县| 遂川县| 霍州市| 林口县| 菏泽市| 长沙市| 固原市| 赤城县| 峡江县| 通江县| 准格尔旗| 孟津县| 绥化市| 巴南区| 平昌县| 鄂尔多斯市| 钟山县| 贡山| 满洲里市| 富源县| 安福县|