usingSystem; usingSystem.Collections.Generic; usingSystem.Text; usingSystem.IO; usingMicrosoft.Win32; usingSystem.Diagnostics; namespaceCommonHelper { public classWinRARHelper { /// <summary> ///是否安装了Winrar /// </summary> /// <returns></returns> static public boolExists() { RegistryKey the_Reg =Registry.LocalMachine.OpenSubKey( @"SOFTWAREMicrosoftWindowsCurrentVersionApp PathsWinRAR.exe"); return !string.IsNullOrEmpty(the_Reg.GetValue("").ToString()); } /// <summary> ///打包成Rar /// </summary> /// <param name="patch"></param> /// <param name="rarPatch"></param> /// <param name="rarName"></param> public void CompressRAR(string patch, string rarPatch, stringrarName) { stringthe_rar; RegistryKey the_Reg; objectthe_Obj; stringthe_Info; ProcessStartInfo the_StartInfo; Process the_Process; try{ the_Reg =Registry.LocalMachine.OpenSubKey( @"SOFTWAREMicrosoftWindowsCurrentVersionApp PathsWinRAR.exe"); the_Obj = the_Reg.GetValue(""); the_rar =the_Obj.ToString(); the_Reg.Close(); the_rar = the_rar.Substring(1, the_rar.Length - 7); Directory.CreateDirectory(patch); //命令参数 //the_Info = " a " + rarName + " " + @"C:Test?70821.txt"; //文件压缩 the_Info = "a " + rarName + " " + patch + "-r"; ; the_StartInfo = newProcessStartInfo(); the_StartInfo.FileName =the_rar; the_StartInfo.Arguments =the_Info; the_StartInfo.WindowStyle =ProcessWindowStyle.Hidden; //打包文件存放目录 the_StartInfo.WorkingDirectory =rarPatch; the_Process = newProcess(); the_Process.StartInfo =the_StartInfo; the_Process.Start(); the_Process.WaitForExit(); the_Process.Close(); } catch(Exception ex) { throwex; } } /// <summary> ///解压 /// </summary> /// <param name="unRarPatch"></param> /// <param name="rarPatch"></param> /// <param name="rarName"></param> /// <returns></returns> public string unCompressRAR(string unRarPatch, string rarPatch, stringrarName) { stringthe_rar; RegistryKey the_Reg; objectthe_Obj; stringthe_Info; try{ the_Reg =Registry.LocalMachine.OpenSubKey( @"SOFTWAREMicrosoftWindowsCurrentVersionApp PathsWinRAR.exe"); the_Obj = the_Reg.GetValue(""); the_rar =the_Obj.ToString(); the_Reg.Close(); //the_rar = the_rar.Substring(1, the_rar.Length - 7); if (Directory.Exists(unRarPatch) == false) { Directory.CreateDirectory(unRarPatch); } the_Info = "x " + rarName + " " + unRarPatch + "-y"; ProcessStartInfo the_StartInfo = newProcessStartInfo(); the_StartInfo.FileName =the_rar; the_StartInfo.Arguments =the_Info; the_StartInfo.WindowStyle =ProcessWindowStyle.Hidden; the_StartInfo.WorkingDirectory = rarPatch;//获取压缩包路径 Process the_Process = newProcess(); the_Process.StartInfo =the_StartInfo; the_Process.Start(); the_Process.WaitForExit(); the_Process.Close(); } catch(Exception ex) { throwex; } returnunRarPatch; } } } //RAR参数: //一、压缩命令 //1、将temp.txt压缩为temp.rarrar a temp.rar temp.txt //2、将当前目录下所有文件压缩到temp.rarrar a temp.rar *.* //3、将当前目录下所有文件及其所有子目录压缩到temp.rarrar a temp.rar *.* -r //4、将当前目录下所有文件及其所有子目录压缩到temp.rar,并加上密码123rar a temp.rar *.* -r -p123 //二、解压命令 //1、将temp.rar解压到c: emp目录rar e temp.rar c: emprar e *.rar c: emp(支持批量操作) //2、将temp.rar解压到c: emp目录,并且解压后的目录结构和temp.rar中的目录结构一 //压缩目录test及其子目录的文件内容 //Wzzip test.zip test -r -P //WINRAR A test.rar test -r //删除压缩包中的*.txt文件 //Wzzip test.zip *.txt -d //WinRAR d test.rar *.txt //刷新压缩包中的文件,即添加已经存在于压缩包中但更新的文件 //Wzzip test.zip test -f //Winrar f test.rar test //更新压缩包中的文件,即添加已经存在于压缩包中但更新的文件以及新文件 //Wzzip test.zip test -u //Winrar u test.rar test //移动文件到压缩包,即添加文件到压缩包后再删除被压缩的文件 //Wzzip test.zip -r -P -m //Winrar m test.rar test -r //添加全部 *.exe 文件到压缩文件,但排除有 a或b //开头名称的文件 //Wzzip test *.exe -xf*.* -xb*.* //WinRAR a test *.exe -xf*.* -xb*.* //加密码进行压缩 //Wzzip test.zip test //-s123。注意密码是大小写敏感的。在图形界面下打开带密码的压缩文件,会看到+号标记(附图1)。 //WINRAR A test.rar test -p123 //-r。注意密码是大小写敏感的。在图形界面下打开带密码的压缩文件,会看到*号标记(附图2)。 //按名字排序、以简要方式列表显示压缩包文件 //Wzzip test.zip -vbn //Rar l test.rar //锁定压缩包,即防止未来对压缩包的任何修改 //无对应命令 //Winrar k test.rar //创建360kb大小的分卷压缩包 //无对应命令 //Winrar a -v360 test //带子目录信息解压缩文件 //Wzunzip test -d //Winrar x test -r //不带子目录信息解压缩文件 //Wzunzip test //Winrar e test //解压缩文件到指定目录,如果目录不存在,自动创建 //Wzunzip test newfolder //Winrar x test newfolder //解压缩文件并确认覆盖文件 //Wzunzip test -y //Winrar x test -y //解压缩特定文件 //Wzunzip test *.txt //Winrar x test *.txt //解压缩现有文件的更新文件 //Wzunzip test -f //Winrar x test -f //解压缩现有文件的更新文件及新文件 //Wzunzip test -n //Winrar x test -u //批量解压缩文件 //Wzunzip *.zip //WinRAR e *.rar
C#解压、压缩RAR文件
免责声明:文章转载自《C#解压、压缩RAR文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。
上篇利用pyinstaller打包加密Python项目golang socket编程,实现http协议下篇
宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=