亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

此程序利用 WinRAR 程序?qū)ξ募M(jìn)行壓縮,命令行語法可參考WinRAR中文幫助。

/// 利用 WinRAR 進(jìn)行壓縮  
/// </summary>  
/// <param name="path">將要被壓縮的文件夾(絕對(duì)路徑)</param>  
/// <param name="rarPath">壓縮后的 .rar 的存放目錄(絕對(duì)路徑)</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; //注冊(cè)表鍵  
  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);  
    //壓縮命令,相當(dāng)于在要壓縮的文件夾(path)上點(diǎn)右鍵 ->WinRAR->添加到壓縮文件->輸入壓縮文件名(rarName)  
    cmd = string.Format("a {0} {1} -r", rarName, path);  
    startinfo = new ProcessStartInfo();  
    startinfo.FileName = rarexe;  
    startinfo.Arguments = cmd; //設(shè)置命令參數(shù)  
    startinfo.WindowStyle = ProcessWindowStyle.Hidden; //隱藏 WinRAR 窗口  
    startinfo.WorkingDirectory = rarPath;  
    process = new Process();  
    process.StartInfo = startinfo;  
    process.Start();  
    process.WaitForExit(); //無限期等待進(jìn)程 winrar.exe 退出  
    if (process.HasExited)  
    {  
      flag = true;  
    }  
    process.Close();  
  }  
  catch (Exception e)  
  {  
    throw e;  
  }  
  return flag;  
}  
/// <summary>  
/// 利用 WinRAR 進(jìn)行解壓縮  
/// </summary>  
/// <param name="path">文件解壓路徑(絕對(duì))</param>  
/// <param name="rarPath">將要解壓縮的 .rar 文件的存放目錄(絕對(duì)路徑)</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);  
    //解壓縮命令,相當(dāng)于在要壓縮文件(rarName)上點(diǎn)右鍵 ->WinRAR->解壓到當(dāng)前文件夾  
    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 進(jìn)行壓縮
/// </summary>
/// <param name="path">將要被壓縮的文件夾(絕對(duì)路徑)</param>
/// <param name="rarPath">壓縮后的 .rar 的存放目錄(絕對(duì)路徑)</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; //注冊(cè)表鍵
 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);
    //壓縮命令,相當(dāng)于在要壓縮的文件夾(path)上點(diǎn)右鍵 ->WinRAR->添加到壓縮文件->輸入壓縮文件名(rarName)
    cmd = string.Format("a {0} {1} -r", rarName, path);
    startinfo = new ProcessStartInfo();
    startinfo.FileName = rarexe;
    startinfo.Arguments = cmd;             //設(shè)置命令參數(shù)
    startinfo.WindowStyle = ProcessWindowStyle.Hidden; //隱藏 WinRAR 窗口
    startinfo.WorkingDirectory = rarPath;
    process = new Process();
    process.StartInfo = startinfo;
    process.Start();
    process.WaitForExit(); //無限期等待進(jìn)程 winrar.exe 退出
    if (process.HasExited)
    {
      flag = true;
    }
    process.Close();
 }
  catch (Exception e)
  {
    throw e;
  }
  return flag;
}
/// <summary>
/// 利用 WinRAR 進(jìn)行解壓縮
/// </summary>
/// <param name="path">文件解壓路徑(絕對(duì))</param>
/// <param name="rarPath">將要解壓縮的 .rar 文件的存放目錄(絕對(duì)路徑)</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);
    //解壓縮命令,相當(dāng)于在要壓縮文件(rarName)上點(diǎn)右鍵 ->WinRAR->解壓到當(dāng)前文件夾
    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命令進(jìn)入到winrar的安裝目錄后,輸入unrar可出來以下提示:

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

<命令> 
  e             解壓壓縮文件到當(dāng)前目錄 
  l[t,b]        列出壓縮文件[技術(shù)信息,簡潔] 
  p             打印文件到標(biāo)準(zhǔn)輸出設(shè)備 
  t             測試壓縮文件 
  v[t,b]        詳細(xì)列出壓縮文件[技術(shù)信息,簡潔] 
  x             用絕對(duì)路徑解壓文件 

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

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

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

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

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

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

    為何Linq的Distinct實(shí)在是不給力

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

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

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

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

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

    C#學(xué)習(xí)筆記整理_變量等基礎(chǔ)語法(必看篇)

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

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

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

    C# Redis學(xué)習(xí)系列(二)Redis基本設(shè)置

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

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

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

    C#圖片按比例縮放實(shí)例

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

    C#調(diào)用Oracle存儲(chǔ)過程方法介紹(附源碼)

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

最新評(píng)論