• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    基于.NET 4.5 压缩的使用

    在.NET 4.5中新加入的压缩的命名空间和方法。可以抛弃ICSharpCode.SharpZipLib.dll 这个类库了。性能上不相上下。但是能够大大简化你的代码。如果开始使用.NET FrameWork4.5 做压缩不妨试试自带的压缩方法.

    传统使用ICSharpCode.SharpZipLib.dll 所写的代码。

    复制代码 代码如下:

    static void Main(string[] args)
            {
                Stopwatch watch = new Stopwatch();
                watch.Start();
                string path = @"E:\";       
                Compress(Directory.GetFiles(path), @"F:\4.0.zip");
                watch.Stop();
                Console.WriteLine("消耗时间:{0}", watch.ElapsedMilliseconds);
                FileInfo f = new FileInfo(@"F:\4.0.zip");
                Console.WriteLine("文件大小{0}", f.Length);
            }

            static void Compress(string[] filePaths, string zipFilePath)
            {
                byte[] _buffer = new byte[4096];
                if (!Directory.Exists(zipFilePath))
                    Directory.CreateDirectory(Path.GetDirectoryName(zipFilePath));
                using (ZipOutputStream zip = new ZipOutputStream(File.Create(zipFilePath)))
                {
                    foreach (var item in filePaths)
                    {
                        if (!File.Exists(item))
                        {
                            Console.WriteLine("the file {0} not exist!", item);
                        }
                        else
                        {
                            ZipEntry entry = new ZipEntry(Path.GetFileName(item));
                            entry.DateTime = DateTime.Now;
                            zip.PutNextEntry(entry);
                            using (FileStream fs = File.OpenRead(item))
                            {
                                int sourceBytes;
                                do
                                {
                                    sourceBytes = fs.Read(_buffer, 0, _buffer.Length);
                                    zip.Write(_buffer, 0, sourceBytes);
                                } while (sourceBytes > 0);
                            }
                        }
                    }
                    zip.Finish();
                    zip.Close();
                }
            }


    使用.NET FrameWork 4.5中自带的压缩。
    复制代码 代码如下:

    static void Main(string[] args)
            {
                Stopwatch watch = new Stopwatch();
                watch.Start();
                string path = @"E:\";
                Compress(path, @"F:\4.5.zip");
                watch.Stop();
                Console.WriteLine("消耗时间:{0}", watch.ElapsedMilliseconds);
                FileInfo f = new FileInfo(@"F:\4.5.zip");
                Console.WriteLine("文件大小{0}", f.Length);
            }
            static void Compress(string filePath, string zipFilePath)
            {
                ZipFile.CreateFromDirectory(filePath, zipFilePath, CompressionLevel.Fastest, false);
            }

    怎么样代码是不是简洁了很多呢?

    上一篇:.NET 4.5 异步IO 相关实例
    下一篇:关于VS2012自带的 性能分析 工具使用实例(图文介绍)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    基于.NET 4.5 压缩的使用 基于,.NET,4.5,压缩,的,使用,