欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實現(xiàn)rar壓縮與解壓縮文件的方法

 更新時間:2015年06月02日 12:20:25   作者:春哥也編程  
這篇文章主要介紹了C#實現(xiàn)rar壓縮與解壓縮文件的方法,實例分析了C#利用winrar程序實現(xiàn)文件的壓縮與解壓縮的相關技巧,需要的朋友可以參考下

本文實例講述了C#實現(xiàn)rar壓縮與解壓縮文件的方法。分享給大家供大家參考。具體分析如下:

此程序利用 WinRAR 程序對文件進行壓縮,命令行語法可參考WinRAR中文幫助。

/// 利用 WinRAR 進行壓縮  
/// </summary>  
/// <param name="path">將要被壓縮的文件夾(絕對路徑)</param>  
/// <param name="rarPath">壓縮后的 .rar 的存放目錄(絕對路徑)</param>
/// <param name="rarName">壓縮文件的名稱(包括后綴)</param>  
/// <returns>true 或 false。壓縮成功返回 true,反之,false。</returns>
public bool RAR(string path, string rarPath, string rarName)  
{  
  bool flag = false;  
  string rarexe;    //WinRAR.exe 的完整路徑  
  RegistryKey regkey; //注冊表鍵  
  Object regvalue;   //鍵值  
  string cmd;     //WinRAR 命令參數(shù)  
  ProcessStartInfo startinfo;  
  Process process;  
  try 
  {  
    regkey = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command");  
    regvalue = regkey.GetValue(""); // 鍵值為 "d:\Program Files\WinRAR\WinRAR.exe" "%1"  
    rarexe = regvalue.ToString();    
    regkey.Close();  
    rarexe = rarexe.Substring(1, rarexe.Length - 7); // d:\Program Files\WinRAR\WinRAR.exe  
    Directory.CreateDirectory(path);  
    //壓縮命令,相當于在要壓縮的文件夾(path)上點右鍵 ->WinRAR->添加到壓縮文件->輸入壓縮文件名(rarName)  
    cmd = string.Format("a {0} {1} -r", rarName, path);  
    startinfo = new ProcessStartInfo();  
    startinfo.FileName = rarexe;  
    startinfo.Arguments = cmd; //設置命令參數(shù)  
    startinfo.WindowStyle = ProcessWindowStyle.Hidden; //隱藏 WinRAR 窗口  
    startinfo.WorkingDirectory = rarPath;  
    process = new Process();  
    process.StartInfo = startinfo;  
    process.Start();  
    process.WaitForExit(); //無限期等待進程 winrar.exe 退出  
    if (process.HasExited)  
    {  
      flag = true;  
    }  
    process.Close();  
  }  
  catch (Exception e)  
  {  
    throw e;  
  }  
  return flag;  
}  
/// <summary>  
/// 利用 WinRAR 進行解壓縮  
/// </summary>  
/// <param name="path">文件解壓路徑(絕對)</param>  
/// <param name="rarPath">將要解壓縮的 .rar 文件的存放目錄(絕對路徑)</param>
/// <param name="rarName">將要解壓縮的 .rar 文件名(包括后綴)</param>
/// <returns>true 或 false。解壓縮成功返回 true,反之,false。</returns>
public bool UnRAR(string path, string rarPath, string rarName)  
{  
  bool flag = false;  
  string rarexe;  
  RegistryKey regkey;  
  Object regvalue;  
  string cmd;  
  ProcessStartInfo startinfo;  
  Process process;  
  try 
  {  
    regkey = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command");  
    regvalue = regkey.GetValue("");  
    rarexe = regvalue.ToString();  
    regkey.Close();  
    rarexe = rarexe.Substring(1, rarexe.Length - 7);  
    Directory.CreateDirectory(path);  
    //解壓縮命令,相當于在要壓縮文件(rarName)上點右鍵 ->WinRAR->解壓到當前文件夾  
    cmd = string.Format("x {0} {1} -y", rarName, path);  
    startinfo = new ProcessStartInfo();  
    startinfo.FileName = rarexe;  
    startinfo.Arguments = cmd;  
    startinfo.WindowStyle = ProcessWindowStyle.Hidden;  
    startinfo.WorkingDirectory = rarPath;  
    process = new Process();  
    process.StartInfo = startinfo;  
    process.Start();  
    process.WaitForExit();  
    if (process.HasExited)  
    {  
      flag = true;  
    }  
    process.Close();  
  }  
  catch (Exception e)  
  {  
    throw e;  
  }  
  return flag;  
} 
/// <summary>
/// 利用 WinRAR 進行壓縮
/// </summary>
/// <param name="path">將要被壓縮的文件夾(絕對路徑)</param>
/// <param name="rarPath">壓縮后的 .rar 的存放目錄(絕對路徑)</param>
/// <param name="rarName">壓縮文件的名稱(包括后綴)</param>
/// <returns>true 或 false。壓縮成功返回 true,反之,false。</returns>
public bool RAR(string path, string rarPath, string rarName)
{
  bool flag = false;
  string rarexe;    //WinRAR.exe 的完整路徑
  RegistryKey regkey; //注冊表鍵
 Object regvalue;   //鍵值
 string cmd;     //WinRAR 命令參數(shù)
 ProcessStartInfo startinfo;
  Process process;
  try
  {
    regkey = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command");
    regvalue = regkey.GetValue(""); // 鍵值為 "d:\Program Files\WinRAR\WinRAR.exe" "%1"
    rarexe = regvalue.ToString();  
    regkey.Close();
    rarexe = rarexe.Substring(1, rarexe.Length - 7); // d:\Program Files\WinRAR\WinRAR.exe
    Directory.CreateDirectory(path);
    //壓縮命令,相當于在要壓縮的文件夾(path)上點右鍵 ->WinRAR->添加到壓縮文件->輸入壓縮文件名(rarName)
    cmd = string.Format("a {0} {1} -r", rarName, path);
    startinfo = new ProcessStartInfo();
    startinfo.FileName = rarexe;
    startinfo.Arguments = cmd;             //設置命令參數(shù)
    startinfo.WindowStyle = ProcessWindowStyle.Hidden; //隱藏 WinRAR 窗口
    startinfo.WorkingDirectory = rarPath;
    process = new Process();
    process.StartInfo = startinfo;
    process.Start();
    process.WaitForExit(); //無限期等待進程 winrar.exe 退出
    if (process.HasExited)
    {
      flag = true;
    }
    process.Close();
 }
  catch (Exception e)
  {
    throw e;
  }
  return flag;
}
/// <summary>
/// 利用 WinRAR 進行解壓縮
/// </summary>
/// <param name="path">文件解壓路徑(絕對)</param>
/// <param name="rarPath">將要解壓縮的 .rar 文件的存放目錄(絕對路徑)</param>
/// <param name="rarName">將要解壓縮的 .rar 文件名(包括后綴)</param>
/// <returns>true 或 false。解壓縮成功返回 true,反之,false。</returns>
public bool UnRAR(string path, string rarPath, string rarName)
{
  bool flag = false;
  string rarexe;
  RegistryKey regkey;
  Object regvalue;
  string cmd;
  ProcessStartInfo startinfo;
  Process process;
  try
  {
    regkey = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command");
    regvalue = regkey.GetValue("");
    rarexe = regvalue.ToString();
    regkey.Close();
    rarexe = rarexe.Substring(1, rarexe.Length - 7);
    Directory.CreateDirectory(path);
    //解壓縮命令,相當于在要壓縮文件(rarName)上點右鍵 ->WinRAR->解壓到當前文件夾
    cmd = string.Format("x {0} {1} -y", rarName, path);
    startinfo = new ProcessStartInfo();
    startinfo.FileName = rarexe;
    startinfo.Arguments = cmd;
    startinfo.WindowStyle = ProcessWindowStyle.Hidden;
    startinfo.WorkingDirectory = rarPath;
    process = new Process();
    process.StartInfo = startinfo;
    process.Start();
    process.WaitForExit();
    if (process.HasExited)
    {
      flag = true;
    }
    process.Close();
  }
  catch (Exception e)
  {
    throw e;
  }
  return flag;
}

在dos或者cmd下用cd命令進入到winrar的安裝目錄后,輸入unrar可出來以下提示:

用法:     unrar < 命令> -<開關 1> -<開關 N> <壓縮文件> <文件...> 
               <@ 列表文件...> <解壓路徑\> 

<命令> 
  e             解壓壓縮文件到當前目錄 
  l[t,b]        列出壓縮文件[技術信息,簡潔] 
  p             打印文件到標準輸出設備 
  t             測試壓縮文件 
  v[t,b]        詳細列出壓縮文件[技術信息,簡潔] 
  x             用絕對路徑解壓文件 

<開關> 
  -             停止掃描 
  ac            壓縮或解壓后清除存檔屬性 
  ad            添加壓縮文件名到目標路徑 
  ap<格式>      添加路徑到壓縮文件中 
  av-           禁用用戶身份校驗 
  c-            禁用注釋顯示 
  cfg-          禁用讀取配置 
  cl            名稱轉換為小寫 
  cu            名稱轉換為大寫 
  dh            打開共享文件 
  ep            從名稱中排除路徑 
  ep3           擴展路徑為包含盤符的完全路徑 
  f             刷新文件 
  id[c,d,p,q]   禁用消息 
  ierr          發(fā)送所有消息到標準錯誤設備 
  inul          禁用所有消息 
  ioff          完成一個操作后關閉 PC 電源 
  kb            保留損壞的已解壓文件 
  n<文件>       僅包含指定的文件 
  n@            從標準輸入設備讀取文件名到包括 
  n@<列表>      在指定的文件列表包括文件 
  o+            覆蓋已存在文件 
  o-            不覆蓋已存在文件 
  oc            設置 NTFS 壓縮屬性 
  or            自動重命名文件 
  ow            保存或恢復文件所有者和組 
  p[密碼]       設置密碼 
  p-            不詢問密碼 
  r             遞歸子目錄 
  ri<P>[:<S>]   設置優(yōu)先級(0-默認,1-最小..15-最大)和以毫秒為單位的休眠時間 
  sl<大小>      處理小于指定大小的文件 
  sm<大小>      處理超過指定大小的文件 
  ta<日期>      添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS 
  tb<日期>      添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS 
  tn<時間>      添加 <時間> 以后的文件 
  to< 時間>      添加 <時間> 以前的文件 
  ts<m,c,a>[N]  保存或恢復文件時間(修改,創(chuàng)建,訪問) 
  u             更新文件 
  v             列出所有卷 
  ver[n]        文件版本控制 
  vp            每卷之前暫停 
  x<文件>       排除指定的文件 
  x@            從標準輸入設備讀取要排除的文件名 
  x@<列表>      排除指定列表文件中的文件 
  y             假設對全部詢問都回答是

在DOS(cmd)下使用WinRAR解縮文件具體舉例:
假設,d 盤中有一個 winrar.rar,要解壓到F盤中的hello文件夾中,則在dos下輸入以下命令即可:
unrar x d:\winrar.rar F:\hello\

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • C# MeasureString測量字符串函數(shù)的使用方法

    C# MeasureString測量字符串函數(shù)的使用方法

    這篇文章主要介紹了C# MeasureString測量字符串函數(shù)的使用方法,需要的朋友可以參考下
    2014-10-10
  • 為何Linq的Distinct實在是不給力

    為何Linq的Distinct實在是不給力

    本篇文章對Linq的Distinct進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 詳解C#讀寫Excel的幾種方法

    詳解C#讀寫Excel的幾種方法

    這篇文章主要介紹了詳解C#讀寫Excel的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • C#入?yún)⑹褂靡妙愋鸵觬ef的原因解析

    C#入?yún)⑹褂靡妙愋鸵觬ef的原因解析

    這篇文章主要介紹了C#入?yún)⑹褂靡妙愋鸵觬ef的原因解析,我們在實際開發(fā)中還是能夠碰到一些引用類型添加ref的場景,其實道理也是一樣的,就是將引用類型的棧的地址傳遞到了方法中,那么和不添加有啥區(qū)別,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • C#學習筆記整理_變量等基礎語法(必看篇)

    C#學習筆記整理_變量等基礎語法(必看篇)

    下面小編就為大家?guī)硪黄狢#學習筆記整理_變量等基礎語法(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • C#的Socket實現(xiàn)UDP協(xié)議通信示例代碼

    C#的Socket實現(xiàn)UDP協(xié)議通信示例代碼

    本篇文章主要介紹了C#的Socket實現(xiàn)UDP協(xié)議通信示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C# Redis學習系列(二)Redis基本設置

    C# Redis學習系列(二)Redis基本設置

    這篇文章主要為大家分享了C# Redis學習系列教程第二篇, Redis基本設置,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C# 用什么方法將BitConverter.ToString產(chǎn)生字符串再轉換回去

    C# 用什么方法將BitConverter.ToString產(chǎn)生字符串再轉換回去

    這篇文章主要介紹了C# 用什么方法將BitConverter.ToString產(chǎn)生字符串再轉換回去,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • C#圖片按比例縮放實例

    C#圖片按比例縮放實例

    這篇文章主要為大家詳細介紹了C#圖片按比例縮放的實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • C#調用Oracle存儲過程方法介紹(附源碼)

    C#調用Oracle存儲過程方法介紹(附源碼)

    這篇文章介紹了C#調用Oracle存儲過程的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03

最新評論