两种压缩方式


  PackageFolder(sPath, ZIP_Temp, false);
        public static Boolean PackageFolder(String folderName, String compressedFileName, Boolean overrideExisting)
        {
            if (folderName.EndsWith(@"\\"))
                folderName = folderName.Remove(folderName.Length - 1);


            Boolean result = false;
            if (!Directory.Exists(folderName))
            {
                return result;
            }


            if (!overrideExisting && File.Exists(compressedFileName))
            {
                return result;
            }


            try
            {
                using (Package package = Package.Open(compressedFileName, FileMode.Create))
                {


                    var fileList = Directory.EnumerateFiles(folderName, "*", SearchOption.AllDirectories);
                    foreach (String fileName in fileList)
                    {
                        //获取所有子文件的文件
                        String pathInPackage;
                        pathInPackage = Path.GetDirectoryName(fileName).Replace(folderName, String.Empty) + "/" + Path.GetFileName(fileName);


                        Uri partUriDocument = PackUriHelper.CreatePartUri(new Uri(pathInPackage, UriKind.Relative));
                        PackagePart packagePartDocument = package.CreatePart(partUriDocument, "", CompressionOption.Fast);
                        using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
                        {
                            fileStream.CopyTo(packagePartDocument.GetStream());
                        }
                    }
                }
                result = true;
            }
            catch (Exception e)
            {
                throw new Exception("压缩文件夹错误: " + folderName, e);
            }


            return result;

        }







 ZipDirectory(sPath, ZIP_Temp, passwd);




     public static bool ZipDirectory(string folderToZip, string zipedFile, string password)
        {
            bool result = false;
            if (!Directory.Exists(folderToZip))
                return result;


            ZipOutputStream zipStream = new ZipOutputStream(File.Create(zipedFile));
            zipStream.SetLevel(6);
            if (!string.IsNullOrEmpty(password)) zipStream.Password = password;


            result = ZipDirectory(folderToZip, zipStream, "");


            zipStream.Finish();
            zipStream.Close();


            return result;
        }
        //写LOG





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值