c#创建多级目录的ZIP文件

调用ICSharpCode.SharpZipLib创建一个压缩文件,被压缩的文件夹中包含子目录,

在网上搜索了很多实例,发现或多或少均有点问题,经过实验发现原来其实很简单,根本不用递归什么的

代码如下:

public static void CreateZipFile(string filesPath, string zipFilePath)
        {
            if (!Directory.Exists(filesPath))
            {
                return;
            }
            ZipOutputStream stream = new ZipOutputStream(File.Create(zipFilePath));
            stream.SetLevel(0); // 压缩级别 0-9
            byte[] buffer = new byte[4096]; //缓冲区大小
            string[] filenames = Directory.GetFiles(filesPath, "*.*", SearchOption.AllDirectories);
            foreach (string file in filenames)
            {
                ZipEntry entry = new ZipEntry(file.Replace(filesPath, ""));
                entry.DateTime = DateTime.Now;
                stream.PutNextEntry(entry);
                using (FileStream fs = File.OpenRead(file))
                {
                    int sourceBytes;
                    do
                    {
                        sourceBytes = fs.Read(buffer, 0, buffer.Length);
                        stream.Write(buffer, 0, sourceBytes);
                    } while (sourceBytes > 0);
                }
            }
            stream.Finish();
            stream.Close();
        }
其中filesPath是被压缩的路径

zipFilePath是压缩文件的路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值