压缩文件夹文件到一个压缩包里面

本文介绍了一种使用C#实现的目录压缩方法,通过ZipOutputStream将指定路径下的所有文件压缩到一个ZIP文件中,并设置压缩级别为6。文章详细展示了如何读取文件、创建ZipEntry以及更新CRC校验值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     public static bool ZipDirectory(string inputDirectpath, string outZipFilePath)
        {
            try
            {
                Crc32 crc = new Crc32();
                FileStream fs1 = File.Create(outZipPath);
                ZipOutputStream s = new ZipOutputStream(fs1);
                s.SetLevel(6); // 0 - store only to 9 - means best compression

                DirectoryInfo di = new DirectoryInfo(inputpath);

                foreach (FileInfo file in di.GetFiles())
                {
                    FileStream fs = file.OpenRead();
                    byte[] buffer = new byte[fs.Length];
                    fs.Read(buffer, 0, buffer.Length);
                    string filename = file.Name;
                    ZipEntry entry = new ZipEntry(filename);
                    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);
                }
                s.Finish();
                s.Close();
                return true;
            }
            catch(System.Exception ex)
            {
                string a = ex.Message;
                return false;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值