C#完成rar緊縮與解緊縮文件的辦法。本站提示廣大學習愛好者:(C#完成rar緊縮與解緊縮文件的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成rar緊縮與解緊縮文件的辦法正文
本文實例講述了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#法式設計有所贊助。