C# 7-zip 壓縮和解壓縮


using System;
using System.Collections.Generic;
using System.Text;
using SevenZip;
using System.IO;
using System.Windows.Forms;

namespace TestZip
{
    internal static class Zip
    {
        public static bool Init()
        {
            string _7z32 =  Application.StartupPath+ "\\7z32.dll";
            string _7z64 = Application.StartupPath + "\\7z64.dll";
            string _7z = _7z32;
            try
            {
                if (IntPtr.Size == 8)
                    _7z = _7z64;
                SevenZipExtractor.SetLibraryPath(_7z);
                SevenZipCompressor.SetLibraryPath(_7z);
                return true;
            }
            catch
            {
                return false;
            }
        }

        /// <summary>
        /// 解壓
        /// </summary>
        /// <param name="zip">解壓的zip文件</param>
        /// <param name="folder">解壓到某個文件夾</param>
        /// <returns></returns>
        public static bool UnZip(string zip, string folder)
        {
            try
            {
                var tmp = new SevenZipExtractor(zip);
                if (!Directory.Exists(folder))
                {
                    Directory.CreateDirectory(folder);
                }
                tmp.ExtractArchive(folder);
                return true;
            }
            catch(Exception ex)
            {
                return false;
            }
        }


        /// <summary>
        /// 壓縮
        /// </summary>
        /// <param name="zip">壓縮文件新的保存路徑</param>
        /// <param name="fileFullNames">需要壓縮文件所在路徑(多個需要壓縮的文件)</param>
        /// <returns></returns>
        public static bool ToZip(string zip, params string[] fileFullNames)
        {
            try
            {
                var tmp = new SevenZipCompressor();
                tmp.CompressFiles(zip, fileFullNames);
                return true;
            }
            catch
            {
                return false;
            }
        }

        /// <summary>
        /// 壓縮
        /// </summary>
        /// <param name="folder">需要壓縮文件所在路徑</param>
        /// <param name="zip">壓縮文件新的保存路徑</param>
        /// <returns></returns>
        public static bool ToZip(string folder, string zip)
        {
            try
            {
                var tmp = new SevenZipCompressor(folder);
                
                tmp.CompressDirectory(folder, zip);
                return true;
            }
            catch(Exception ex)
            {
                return false;
            }
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM