亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#實現rar壓縮與解壓縮文件的方法

2020-01-24 01:48:28
字體:
來源:轉載
供稿:網友

本文實例講述了C#實現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 命令參數    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; //設置命令參數      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 命令參數 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;             //設置命令參數    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          發送所有消息到標準錯誤設備 
  inul          禁用所有消息 
  ioff          完成一個操作后關閉 PC 電源 
  kb            保留損壞的已解壓文件 
  n<文件>       僅包含指定的文件 
  n@            從標準輸入設備讀取文件名到包括 
  n@<列表>      在指定的文件列表包括文件 
  o+            覆蓋已存在文件 
  o-            不覆蓋已存在文件 
  oc            設置 NTFS 壓縮屬性 
  or            自動重命名文件 
  ow            保存或恢復文件所有者和組 
  p[密碼]       設置密碼 
  p-            不詢問密碼 
  r             遞歸子目錄 
  ri<P>[:<S>]   設置優先級(0-默認,1-最小..15-最大)和以毫秒為單位的休眠時間 
  sl<大小>      處理小于指定大小的文件 
  sm<大小>      處理超過指定大小的文件 
  ta<日期>      添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS 
  tb<日期>      添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS 
  tn<時間>      添加 <時間> 以后的文件 
  to< 時間>      添加 <時間> 以前的文件 
  ts<m,c,a>[N]  保存或恢復文件時間(修改,創建,訪問) 
  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#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
狠狠躁18三区二区一区| 91在线色戒在线| 少妇激情综合网| 午夜精品一区二区三区在线播放| 午夜精品一区二区三区在线播放| 久久精品国产成人| 国产精品久久久久久久美男| 久久久99久久精品女同性| 中文字幕日本欧美| 国产精品久久久久久久久免费| 国产一区私人高清影院| 国产成人欧美在线观看| 久久频这里精品99香蕉| 91a在线视频| 亚洲视频在线观看网站| 国色天香2019中文字幕在线观看| 国产精品久久久久久久av大片| 国产精品视频xxx| 国语自产偷拍精品视频偷| 亚洲美女av在线| 欧美高跟鞋交xxxxhd| 欧美激情影音先锋| 成人a视频在线观看| 久久精品99久久久香蕉| 欧美在线不卡区| 欧美成人中文字幕在线| 久久久亚洲国产| 国产美女精品免费电影| 久久久免费观看| 国内精品小视频在线观看| 在线观看亚洲视频| 性色av一区二区三区红粉影视| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美丝袜一区二区三区| 欧美乱人伦中文字幕在线| 亚洲第一精品久久忘忧草社区| 青草热久免费精品视频| 国产欧美久久久久久| 国产91色在线| 欧美日韩一区免费| 日韩在线高清视频| 欧美成年人视频网站| 欧美一级大片在线免费观看| 国产午夜精品久久久| 成人性教育视频在线观看| 中文字幕精品在线| 亚洲精品日韩欧美| 欧美在线免费观看| 色偷偷888欧美精品久久久| 欧美激情第1页| 国产狼人综合免费视频| 欧美激情久久久久| 国产精品小说在线| 日韩欧美一区二区三区| 亚洲成人免费在线视频| 国内免费精品永久在线视频| 欧美激情一区二区三级高清视频| 欧美高跟鞋交xxxxxhd| 亚洲黄页视频免费观看| 欧美日韩成人精品| 91人人爽人人爽人人精88v| 欧美激情一区二区三级高清视频| 久久6免费高清热精品| 日韩中文在线中文网三级| 日韩综合中文字幕| 国产盗摄xxxx视频xxx69| 亚洲小视频在线| 精品久久久久久国产| 日韩在线视频二区| 欧美在线观看一区二区三区| 另类图片亚洲另类| 国产亚洲精品成人av久久ww| 欧美日韩国产在线| 久久视频免费观看| 懂色av中文一区二区三区天美| 欧美亚洲国产日韩2020| 亚洲色图17p| 国产91精品久久久久久久| 欧美日韩亚洲系列| 亚洲黄色在线观看| 97视频在线看| 菠萝蜜影院一区二区免费| 国产精品免费福利| 欧美成人免费在线观看| 日韩有码在线电影| 欧美日韩国产成人高清视频| 国产成人一区二区三区小说| 国内精品小视频| 国内成人精品视频| 久热精品视频在线观看| 亚洲片在线资源| 欧美大成色www永久网站婷| 91天堂在线视频| 国产精品久久久久aaaa九色| 亚洲欧美国产精品久久久久久久| 一区二区三区www| 欧美激情第99页| 精品久久久久久国产91| www日韩欧美| 欧美丰满少妇xxxxx| 亚洲香蕉av在线一区二区三区| 久久精品国产久精国产一老狼| 国产亚洲欧美日韩一区二区| 91在线色戒在线| 国产偷国产偷亚洲清高网站| 久久综合九色九九| 中文字幕日韩有码| 亚洲精品国精品久久99热| 疯狂做受xxxx高潮欧美日本| 日韩高清电影免费观看完整| 日韩在线观看免费全集电视剧网站| 精品国内产的精品视频在线观看| 精品视频在线播放免| 亚洲理论在线a中文字幕| 亚洲精品国产品国语在线| 亚洲国产精品久久91精品| 91av国产在线| 久久精品国产亚洲精品| 欧美高清视频在线观看| 久久91精品国产91久久久| 亚洲成人激情在线观看| 午夜精品视频网站| 欧美乱妇高清无乱码| 亚洲午夜国产成人av电影男同| 国产丝袜一区视频在线观看| www.美女亚洲精品| 亚洲欧美日韩中文在线制服| 亚洲一区亚洲二区| 久久天天躁狠狠躁夜夜躁| 中文字幕国产日韩| 久久人人爽人人爽爽久久| 亚洲精品在线91| 亚洲精品国精品久久99热| 国产精品jvid在线观看蜜臀| 日韩精品中文字| 91久久国产综合久久91精品网站| 亚洲男人天堂2024| 亚洲人成网站999久久久综合| 久久久久久av| 欧美精品做受xxx性少妇| 亚洲网站在线观看| 国模精品视频一区二区三区| 亚洲综合在线中文字幕| 成人av资源在线播放| 亚洲欧美综合另类中字| 主播福利视频一区| 国产欧美在线视频| 国内精品国产三级国产在线专| 中文字幕国产精品久久| 国产精品69精品一区二区三区| 97av在线视频| 亚洲人成亚洲人成在线观看| 大胆欧美人体视频| 91免费国产网站| 日韩av在线免播放器| 欧美成人剧情片在线观看| 日本高清不卡在线| 欧美精品电影免费在线观看| 国产在线视频2019最新视频| 精品久久久久久国产| 2019日本中文字幕| 中文字幕亚洲一区二区三区五十路| 精品亚洲一区二区三区在线播放| 亚洲国内精品在线|