文件夹和文件压缩

///<summary>

        ///功能:压缩文件(暂时只压缩文件夹下一级目录中的文件,文件夹及其子级被忽略)

        ///</summary>

        ///<paramname="dirPath">被压缩的文件夹夹路径</param>

        ///<paramname="zipFilePath">生成压缩文件的路径,为空则默认与被压缩文件夹同一级目录,名称为:文件夹名+.zip</param>

        ///<paramname="err">出错信息</param>

        ///<returns>是否压缩成功</returns>

        publicboolZipFile(string dirPath,stringzipFilePath,outstringerr)

        {

           err = "";

            if(dirPath == string.Empty)

            {

               err = "要压缩的文件夹不能为空!";

               return false;

            }

            if(!Directory.Exists(dirPath))

            {

               err = "要压缩的文件夹不存在!";

               return false;

            }

            //压缩文件名为空时使用文件夹名+.zip

            if(zipFilePath == string.Empty)

            {

               if (dirPath.EndsWith("\\"))

               {

                   dirPath = dirPath.Substring(0, dirPath.Length - 1);

               }

               zipFilePath = dirPath + ".zip";

            }

 

            try

            {

               string[] filenames =Directory.GetFiles(dirPath);

               using (ZipOutputStreams =newZipOutputStream(File.Create(zipFilePath)))

               {

                   s.SetLevel(9);

                   byte[] buffer =newbyte[4096];

                   foreach (stringfilein filenames)

                   {

                        ZipEntry entry =newZipEntry(Path.GetFileName(file));

                        entry.DateTime = DateTime.Now;

                        s.PutNextEntry(entry);

                        using(FileStream fs =File.OpenRead(file))

                        {

                            intsourceBytes;

                            do

                            {

                                sourceBytes =fs.Read(buffer, 0, buffer.Length);

                                s.Write(buffer,0, sourceBytes);

                            } while(sourceBytes > 0);

                        }

                   }

                   s.Finish();

                   s.Close();

               }

            }

            catch(Exception ex)

            {

               err = ex.Message;

               return false;

            }

            returntrue;

        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值