zoukankan      html  css  js  c++  java
  • C#压缩文件夹

    using System;
    using System.Collections.Generic;
    using System.Text;

    ///第三方dll
    using ICSharpCode.SharpZipLib;
    using ICSharpCode.SharpZipLib.Checksums;
    using ICSharpCode.SharpZipLib.Zip;
    using System.IO;
    using log4net;
    using log4net.Config;
    using System.Text.RegularExpressions;

    namespace Test.BLL
    {
    public class TestZipFile
    {
    protected static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

    /// <summary>
    /// 加密压缩包的方法
    /// </summary>
    /// <param name="strFile"></param>
    /// <param name="strZip"></param>
    /// <param name="sPassWord"></param>
    public void ZipFile(string strFile, string strZip, string sPassWord)
    {
    if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar)
    strFile += Path.DirectorySeparatorChar;
    ZipOutputStream s = new ZipOutputStream(File.Create(strZip));
    if (sPassWord != "")
    {
    s.Password = sPassWord; //Zip压缩文件密码
    }
    s.SetLevel(6);
    zip(strFile, s, strFile);
    s.Finish();
    s.Close();
    }
    /// <summary>
    /// 压缩文件夹
    /// </summary>
    /// <param name="strFile"></param>
    /// <param name="strZip"></param>
    /// <param name="sPassWord"></param>
    public void ZipFile(string strFile, string strZip)
    {
    if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar)
    strFile += Path.DirectorySeparatorChar;
    ZipOutputStream s = new ZipOutputStream(File.Create(strZip));
    s.SetLevel(6);
    zip(strFile, s, strFile);
    s.Finish();
    s.Close();
    }
    private void zip(string strFile, ZipOutputStream s, string staticFile)
    {
    if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar) strFile += Path.DirectorySeparatorChar;
    Crc32 crc = new Crc32();
    string[] filenames = Directory.GetFileSystemEntries(strFile);
    foreach (string file in filenames)
    {

    if (Directory.Exists(file))
    {
    zip(file, s, staticFile);
    }

    else // 否则直接压缩文件
    {
    //打开压缩文件
    FileStream fs = File.OpenRead(file);

    byte[] buffer = new byte[fs.Length];
    fs.Read(buffer, 0, buffer.Length);
    string tempfile = file.Substring(staticFile.LastIndexOf("\") + 1);
    ZipEntry entry = new ZipEntry(tempfile);

    entry.DateTime = DateTime.Now;
    entry.Size = fs.Length;
    fs.Close();
    crc.Reset();
    crc.Update(buffer);
    entry.Crc = crc.Value;
    s.PutNextEntry(entry);

    s.Write(buffer, 0, buffer.Length);
    }
    }
    }

    }
    }

  • 相关阅读:
    小米手机导出微信聊天记录
    IBM X3650 M4 微码升级(BIOS升级)
    leetcode1987 不同的好子序列数目
    leetcode1932 合并多棵二叉搜索树
    leetcode146 LRU 缓存机制
    leetcode456 132 模式
    leetcode316 去除重复字母
    GIT放弃本地所有修改,强制拉取更新
    vendor/easywechat-composer/easywechat-composer/src:
    微信公众号推广饿了么赏金红包制作
  • 原文地址:https://www.cnblogs.com/yangdunqin/p/CompressedFolder.html
Copyright © 2011-2022 走看看