您的位置:首页 > 其它

文件压缩解压和调用系统里安装的软件

2013-11-22 10:32 369 查看
本文的压缩和解压都是调用系统自带的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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: