zoukankan      html  css  js  c++  java
  • 文件压缩解压和调用系统里安装的软件

    本文的压缩和解压都是调用系统自带的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(@"ApplicationsWinRAR.exeShellOpenCommand");
                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(@"ApplicationsWinRar.exeShellOpenCommand");
                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(@"ApplicationsQQPlayer.exeshellopencommand");
                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);
            }
        }
    }
  • 相关阅读:
    Linux命令集
    Java实现 LeetCode 648 单词替换(字典树)
    pci常用命令
    pci 设备 vendor device subsystem 驱动
    手动绑定驱动 + drivers_probe + rescan
    找不到网卡 pci probe function not called
    primary + secondary + malloc + rte_memzone_reserve
    gdb 打印结构体
    rte_fbarray_init
    DPDK 内存管理---malloc_heap和malloc_elem
  • 原文地址:https://www.cnblogs.com/kinger906/p/3437041.html
Copyright © 2011-2022 走看看