c rar压缩解压缩 转
c rar压缩解压缩 转
c#rar压缩解压缩
转自:文章分类:C++编程
此程序利用WinRAR程序对文件进行压缩,命令行语法可参考WinRAR中文帮助。
Java代码///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();
7);rarexe=rarexe.Substring(1,rarexe.Length-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 xd:\winrar.rar F:\hello\
MSN空间完美搬家到新浪博客~