• c# 用DotNetZip来解压/压缩文件


    //https://archive.codeplex.com/?p=dotnetzip
    //最新在Nuget 下载DotNetZip
    
    using Ionic.Zip;
    
    
    private void button1_Click(object sender, EventArgs e)
            {
                string msg = "";
                ExtractFile("D:\1.zip", "d:\OK\");
                ExtractFile("D:\1.zip", "d:\OK\", false, out msg);
            }
    
    
    
            public static bool ZipFolder(
                        String sourceFilePath,
                        String targetFileFullPath,
                        Boolean isUsePassword,
                        Int32 maxOutputSegmentSiez,
                        out String errMessage)
            {
                try
                {
                    using (ZipFile zip = new ZipFile(Encoding.Default))
                    {
                        errMessage = String.Empty;
                        zip.Comment = "压缩文件时间" + System.DateTime.Now.ToString("G");
                        zip.Name = Guid.NewGuid().ToString().ToUpper() + ".zip";
                        if (isUsePassword)
                            zip.Password = "123";
                        zip.MaxOutputSegmentSize = maxOutputSegmentSiez * 1000;
                        zip.BufferSize = 1024;
                        zip.CaseSensitiveRetrieval = true;
                        zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
                        zip.AddDirectory(sourceFilePath);
                        zip.Save(targetFileFullPath);
                        return true;
                    }
                }
                catch (Exception ex) { errMessage = ex.Message; return false; }
            }
    
    
            public static bool ExtractFile(String sourceFileFullPath, String targetFolderPath, Boolean isUsePassword, out String errMessage)
            {
                try
                {
                    Encoding encoding = Encoding.UTF8;
                    errMessage = String.Empty;
                    var options = new ReadOptions { StatusMessageWriter = System.Console.Out, Encoding = encoding };
                    using (ZipFile zip = ZipFile.Read(sourceFileFullPath, options))
                    {
                        if (isUsePassword)
                        { //假设有密码123
                            zip.Password = "123";
                        }
                        zip.AlternateEncoding = encoding;
                        zip.ExtractAll(targetFolderPath, ExtractExistingFileAction.OverwriteSilently);//一次批量解压
                        return true;
                    }
                }
                catch (Exception ex) { errMessage = ex.Message; return false; }
            }
    
    
    
    
            public static bool ExtractFile(String sourceFileFullPath, String targetFolderPath)
            {
                try
                {
                    Encoding encoding = Encoding.UTF8;
    
                    var options = new ReadOptions { StatusMessageWriter = System.Console.Out, Encoding = encoding };
                    using (ZipFile zip = ZipFile.Read(sourceFileFullPath, options))
                    {
                        zip.AlternateEncoding = encoding;
                        foreach (var f in zip.Entries)
                        {//一个个解压
                            f.Extract(targetFolderPath, ExtractExistingFileAction.OverwriteSilently);
                        }
    
                        return true;
                    }
                }
                catch (Exception ex)
                {
    
                    return false;
                }
            }
    

      

  • 相关阅读:
    网格走法数目
    字典序(数据字典)
    异或(数据字典)
    头条校招
    Python中的zip()
    什么是“背书”
    求十进制整数的任意进制转换
    安装并使用pyecharts库(0.5.10)
    pycharm使用Ctrl+滚轮调整字体大小
    Anaconda中安装pyecharts
  • 原文地址:https://www.cnblogs.com/wgscd/p/10869090.html
Copyright © 2020-2023  润新知