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#法式設計有所贊助。