【C#】Ionic.Zip压缩文件无多级目录

Ionic.Zip是一个压缩扩展包,可以通过它实现文件的解压缩。在处理之前,需要在VS编译器中下载安装Ionic.Zip包,之后添加引用。代码如下:

        /// <summary>
        /// 实现压缩文件
        /// </summary>
        /// <param name="files">压缩的文件集合</param>
        /// <param name="zipFileAddress">压缩文件的存放地址</param>
        public bool CompressMulti(List<string> files, string zipFileAddress)
        {
            try
            {
                using (ZipFile zip = new ZipFile(@zipFileAddress, Encoding.Default))
                {
                    //将要压缩的文件添加到zip对象中去
                    foreach (string filePath in files)
                    {
                        if (File.Exists(filePath))
                        {
                            zip.AddFile(filePath,"");    //空字符串避免解压后是多级目录
                        }
                    }
                    zip.Save();// 保存
                }
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }

这里注意zip.AddFile(filePath,"");代码,zip.AddFile其实有两个参数,第一个为要求压缩的文件名,第二个是需要保存的路径,默认为当前目录,如果不设置空字符串,打开会需要打开很多。

#region Ionic.Zip压缩文件 //压缩方法一 public void ExeCompOne() { string FileName = DateTime.Now.ToString("yyMMddHHmmssff"); //ZipFile实例化一个压缩文件保存路径的一个对象zip using (ZipFile zip = new ZipFile(@"E:\\yangfeizai\\"+ FileName+".zip",Encoding.Default)) { //加密压缩 zip.Password = "123456"; //将要压缩的文件夹添加到zip对象中去(要压缩的文件夹路径和名称) zip.AddDirectory(@"E:\\yangfeizai\\"+"12051214544443"); //将要压缩的文件添加到zip对象中去,如果文件不存在抛错FileNotFoundExcept //zip.AddFile(@"E:\\yangfeizai\\12051214544443\\"+"Jayzai.xml"); zip.Save(); } } //压缩方法二 public void ExeCompTwo() { string FileName = DateTime.Now.ToString("yyMMddHHmmssff"); //ZipFile实例化一个对象zip using (ZipFile zip = new ZipFile()) { //加密压缩 zip.Password = "123456"; //将要压缩的文件夹添加到zip对象中去(要压缩的文件夹路径和名称) zip.AddDirectory(@"E:\\yangfeizai\\" + "12051214544443"); //将要压缩的文件添加到zip对象中去,如果文件不存在抛错FileNotFoundExcept //zip.AddFile(@"E:\\yangfeizai\\12051214544443\\"+"Jayzai.xml"); //用zip对象中Save重载方法保存压缩的文件,参数为保存压缩文件的路径 zip.Save(@"E:\\yangfeizai\\"+ FileName + ".zip"); } } #endregion #region //删除压缩包中的文件 //3.从zip文件中删除一个文件,注意无法直接删除一个文件夹 public void ExeDelete(string FileName) { using (ZipFile zip = ZipFile.Read(@"E:\\yangfeizai\\" + FileName + ".zip")) { //zip["Jayzai.xml"] = null; //删除zip对象中的一个文件 zip.RemoveEntry("Jayzai.xml"); zip.Save(); } } #endregion
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值