打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#生成ZIP压缩包

生成ZIP压缩包C#代码如下:

using System;using System.Collections.Generic;using System.Text;using ICSharpCode.SharpZipLib;using ICSharpCode.SharpZipLib.Checksums;using ICSharpCode.SharpZipLib.Zip;using System.IO;using log4net;using log4net.Config;namespace Test.BLL{    public class TestZipFile    {        protected static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);        ///<summary>        /// 创建ZIP文件        ///</summary>        public void CreateZipFile(string[] files, string sTempFile, string sPassWord)        {            try            {                using (ZipOutputStream s = new ZipOutputStream(File.Create(sTempFile)))                {                    s.SetLevel(9); // 压缩级别 0-9                    if (sPassWord != "")                    {                        s.Password = sPassWord; //Zip压缩文件密码                    }                    byte[] buffer = new byte[4096]; //缓冲区大小                    foreach (string file in files)                    {                        if (!string.IsNullOrEmpty(file))                        {                            if (File.Exists(file))                            {                                ZipEntry entry = new ZipEntry(Path.GetFileName(file));                                entry.DateTime = DateTime.Now;                                s.PutNextEntry(entry);                                using (FileStream fs = File.OpenRead(file))                                {                                    int sourceBytes;                                    do                                    {                                        sourceBytes = fs.Read(buffer, 0, buffer.Length);                                        s.Write(buffer, 0, sourceBytes);                                    } while (sourceBytes > 0);                                }                            }                            else                            {                                logger.Error("文件:" + file + "不存在。");                            }                        }                    }                    s.Finish();                    s.Close();                }            }            catch (Exception ex)            {                logger.Error("压缩文件时异常!");                logger.Error("异常描述:\t" + ex.Message);                logger.Error("异常方法:\t" + ex.TargetSite);                logger.Error("异常堆栈:\t" + ex.StackTrace);            }        }        /// <summary>        ///         /// </summary>        /// <param name="files">放入ZIP的文件路劲(含文件名)</param>        /// <param name="sTempFile">创建的ZIP文件路劲(含文件名)</param>        /// <param name="sPassWord">ZIP文件密码</param>        /// <param name="folderNames">存放到ZIP中的文件夹名,空代表放在顶级目录</param>        public void CreateZipFileMutilFolder(string[] files, string sTempFile, string sPassWord, string[] folderNames)        {            try            {                using (ZipOutputStream s = new ZipOutputStream(File.Create(sTempFile)))                {                    s.SetLevel(9); // 压缩级别 0-9                    if (sPassWord != "")                    {                        s.Password = sPassWord; //Zip压缩文件密码                    }                    byte[] buffer = new byte[4096]; //缓冲区大小                    int i = 0;                    foreach (string file in files)                    {                        if (!string.IsNullOrEmpty(file))                        {                            if (File.Exists(file))                            {                                ZipEntry entry = new ZipEntry((string.IsNullOrEmpty(folderNames[i]) ? "" : (folderNames[i] + "\\")) + Path.GetFileName(file));                                entry.DateTime = DateTime.Now;                                s.PutNextEntry(entry);                                using (FileStream fs = File.OpenRead(file))                                {                                    int sourceBytes;                                    do                                    {                                        sourceBytes = fs.Read(buffer, 0, buffer.Length);                                        s.Write(buffer, 0, sourceBytes);                                    } while (sourceBytes > 0);                                }                            }                            else                            {                                logger.Error("文件:" + file + "不存在。");                            }                        }                        i++;                    }                    s.Finish();                    s.Close();                }            }            catch (Exception ex)            {                logger.Error("压缩文件时异常!");                logger.Error("异常描述:\t" + ex.Message);                logger.Error("异常方法:\t" + ex.TargetSite);                logger.Error("异常堆栈:\t" + ex.StackTrace);            }        }    }}

其中会用到的文件名、文件路径非法字符替换方法:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
WP7 压缩文件
C#压缩解压zip 文件
高效读取大数据文本文件(上亿行数据)
Android中读取zip文件
C# zip压缩
java压缩解压代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服