文件压缩解压和调用系统里安装的软件
本文的压缩和解压都是调用系统自带的WinRAR解压缩软件来实现的,实例代码如下:
public partial class test2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //YS();//压缩 //JY();//解压 GetSoft();//调用软件 } // 参数说明: // a 添加文件到压缩文件中 // -k 锁定压缩文件 // -s产生固体存档,这样可以增大压缩比 // -r包括子目录 // -m1 设置压缩比 // -m0 存储 添加到压缩文件时不压缩文件。 // -m1 最快 使用最快方式(低压缩) // -m2 较快 使用快速压缩方式 // -m3 标准 使用标准(默认)压缩方式 // -m4 较好 使用较好压缩方式(较好压缩,但是慢) // -m5 最好 使用最大压缩方式(最好的压缩,但是最慢) /// <summary> /// 压缩文件 /// </summary> public void YS() { string rar; RegistryKey reg; string args; ProcessStartInfo procStart; Process process; try { reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\Shell\Open\Command"); rar = reg.GetValue("").ToString();//获取注册表rar安装路径 reg.Close(); rar = rar.Substring(1, rar.Length - 7);//获取rar安装路径 //args = "a -inul -y E:\\压缩1.rar E:\\Test E:\\Samples E:\\Logo1.png E:\\set.config D:\\PATH";//文件压缩大小为6145KB //args = "a -m1 -inul -y E:\\压缩1.rar E:\\Test E:\\Samples E:\\Logo1.png E:\\set.config D:\\PATH";//文件压缩大小为6908KB //args = "a -m2 -inul -y E:\\压缩2.rar E:\\Test E:\\Samples E:\\Logo1.png E:\\set.config D:\\PATH";//文件压缩大小为6522KB //args = "a -m3 -inul -y E:\\压缩3.rar E:\\Test E:\\Samples E:\\Logo1.png E:\\set.config D:\\PATH";//文件压缩大小为6145KB //args = "a -m4 -inul -y E:\\压缩4.rar E:\\Test E:\\Samples E:\\Logo1.png E:\\set.config D:\\PATH";//文件压缩大小为6123KB args = "a -m5 -inul E:\\压缩5.rar E:\\Test E:\\Samples E:\\Logo1.png E:\\set.config D:\\PATH";//文件压缩大小为6117KB,这里为rar的压缩命令格式(也可以自行扩展),第一个是压缩后的文件,后面几个路径是需要被压缩的文件和文件夹 procStart = new ProcessStartInfo(); procStart.FileName = rar; procStart.Arguments = args;//参数 procStart.WindowStyle = ProcessWindowStyle.Hidden;//窗口状态,默认会显示压缩状态 procStart.WorkingDirectory = Server.MapPath(""); ;//获取或设置要启动的进程的初始目录。 process = new Process(); process.StartInfo = procStart; process.Start(); Response.Write("<script>alert('压缩成功')</script>"); } catch (Exception ex) { Response.Write(ex.ToString()); } } /// <summary> /// 解压 /// </summary> public void JY() { string rar; RegistryKey reg; string args; ProcessStartInfo startInfo; Process process; try { reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRar.exe\Shell\Open\Command"); rar = reg.GetValue("").ToString(); reg.Close(); rar = rar.Substring(1, rar.Length - 7); args = " X E:\\压缩.rar E:\\Test2";//第一个路径是需要被解压的文件,第二个路径必须存在才能解压到该路径 startInfo = new ProcessStartInfo(); startInfo.FileName = rar; startInfo.Arguments = args; startInfo.WindowStyle = ProcessWindowStyle.Hidden; process = new Process(); process.StartInfo = startInfo;//启用新的进程 process.Start(); Response.Write("<script>alert('解压成功')</script>"); } catch (Exception ex) { Response.Write(ex.ToString()); } } /// <summary> /// 调用软件,示例:调用QQ播放器 /// </summary> public void GetSoft() { RegistryKey reg; string ps; try { reg = Registry.ClassesRoot.OpenSubKey(@"Applications\QQPlayer.exe\shell\open\command"); ps = reg.GetValue("").ToString(); reg.Close(); ps = ps.Substring(1, ps.Length - 10); ProcessStartInfo psPro = new ProcessStartInfo(); psPro.FileName = ps; Process process = new Process(); process.StartInfo = psPro; process.Start(); Response.Write("<script>alert('调用QQ播放器成功!')</script>"); } catch (Exception ex) { Response.Write(ex.Message); } } }