zoukankan      html  css  js  c++  java
  • C# ICSharpCode.SharpZipLib 压缩文件 yang

     
    利用ICSharpCode.SharpZipLib.dll 压缩文件夹
    View Code
     1 private void zip(string strFile, ZipOutputStream s, string staticFile)
     2         {
     3             if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar)
     4             {
     5                 strFile = strFile + Path.DirectorySeparatorChar;
     6             }
     7             Crc32 crc = new Crc32();
     8             string[] fileSystemEntries = Directory.GetFileSystemEntries(strFile);
     9             foreach (string str in fileSystemEntries)
    10             {
    11                 if (Directory.Exists(str))
    12                 {
    13                     zip(str, s, staticFile);
    14                 }
    15                 else
    16                 {
    17                     FileStream stream = File.OpenRead(str);
    18                     byte[] buffer = new byte[stream.Length];
    19                     stream.Read(buffer, 0, buffer.Length);
    20                     ZipEntry entry = new ZipEntry(str.Substring(staticFile.LastIndexOf(@"\") + 1));
    21                     entry.DateTime=DateTime.Now;
    22                     entry.Size = stream.Length;
    23                     stream.Close();
    24                     crc.Reset();
    25                     crc.Update(buffer);
    26                     entry.Crc=crc.Value;
    27                     s.PutNextEntry(entry);
    28                     s.Write(buffer, 0, buffer.Length);
    29                 }
    30             }
    31         }
    32         /// <summary>
    33         /// 
    34         /// </summary>
    35         /// <param name="strFile">文件夹</param>
    36         /// <param name="strZip">压缩后文件</param>
    37         public void ZipFile(string strFile, string strZip)
    38         {
    39             if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar)
    40             {
    41                 strFile = strFile + Path.DirectorySeparatorChar;
    42             }
    43             ZipOutputStream s = new ZipOutputStream(File.Create(strZip));
    44             s.Password = "**";//需要密码可以设置
    45             s.SetLevel(6);
    46             zip(strFile, s, strFile);
    47             s.Finish();
    48             s.Close();
    49         }
  • 相关阅读:
    线程同步 –Mutex和Semaphore
    线程同步 –AutoResetEvent和ManualResetEvent
    线程同步 – lock和Monitor
    .NET垃圾回收 – 非托管资源
    .NET垃圾回收 – 原理浅析
    反射简介—C#特性和反射
    反射简介—类型反射和晚期绑定
    Django REST framework 第一章 Serialization
    Django REST framework 简介
    Python Django 实用小案例2
  • 原文地址:https://www.cnblogs.com/alibaba/p/2619872.html
Copyright © 2011-2022 走看看