LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#利用WinRAR實(shí)現(xiàn)壓縮和解壓縮

admin
2021年5月31日 8:29 本文熱度 2990

using System;

using Microsoft.Win32;

using System.Diagnostics;

using System.IO;

 

namespace MSCL

{

    /// <summary>

    /// 壓縮解壓類

    /// </summary>

    public class ZipHelper

    {

        /// <summary>

        /// 利用 WinRAR 進(jìn)行壓縮

        /// </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 命令參數(shù)

            ProcessStartInfo startinfo;

            Process process;

            try

            {

                regkey = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command");

                regvalue = regkey.GetValue("WinRAR");  // 鍵值為 "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);

                //壓縮命令,相當(dāng)于在要壓縮的文件夾(path)上點(diǎn)右鍵->WinRAR->添加到壓縮文件->輸入壓縮文件名(rarName)

                cmd = string.Format("a {0} {1} -r",

                                    rarName,

                                    path);

                startinfo = new ProcessStartInfo();

                startinfo.FileName = rarexe;

                startinfo.Arguments = cmd;                          //設(shè)置命令參數(shù)

                startinfo.WindowStyle = ProcessWindowStyle.Hidden;  //隱藏 WinRAR 窗口

 

                startinfo.WorkingDirectory = rarPath;

                process = new Process();

                process.StartInfo = startinfo;

                process.Start();

                process.WaitForExit(); //無限期等待進(jìn)程 winrar.exe 退出

                if (process.HasExited)

                {

                    flag = true;

                }

                process.Close();

            }

            catch (Exception e)

            {

                throw e;

            }

            return flag;

        }

 

 

        /// <summary>

        /// 利用 WinRAR 進(jìn)行解壓縮

        /// </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();

                rarexe = rarexe.Substring(1, rarexe.Length - 7);

 

                Directory.CreateDirectory(path);

                //解壓縮命令,相當(dāng)于在要壓縮文件(rarName)上點(diǎn)右鍵->WinRAR->解壓到當(dāng)前文件夾

                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;

        }

    }

}


該文章在 2021/5/31 8:29:50 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
在线看片国产在线 | 亚洲一区二区三区日韩91 | 亚洲中文字幕网址在线 | 欧美中文字高清在线播放 | 在线精品亚洲一区二区三区 | 久久久久久国产精选Av香蕉 |