zoukankan      html  css  js  c++  java
  • 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);
            }
    复制代码
  • 相关阅读:
    modesim仿真
    EP3C系列FPGA的JTAG检测不了,JTAG下载失败,AS可以下载,下载完成后不执行程序
    本机修改虚拟机linux中的代码文件
    linux中的diff命令
    php中的elseif和else if
    php将数据写入另外一个文件
    IE6下的png不透明问题
    cookie的封装
    php从接口获取数据转成可以用的数组或其他(含转换编码)
    如何让后加载的元素被一开始就有的css样式渲染成功(强制提升css优先级)
  • 原文地址:https://www.cnblogs.com/KingsLiu/p/6479156.html
Copyright © 2011-2022 走看看