zoukankan      html  css  js  c++  java
  • 利用ICSharpCode压缩打包文件

    因为项目需要打包文件,就在同事的建议下用ICSharpCode写了个打包函数.ICSharpCode的介绍就不说了.具体请到官方网站 http://www.icsharpcode.net/ 上了解.

    首先引用ICSharpCode.SharpZipLib.dll,没有在这里下载:https://files.cnblogs.com/KenBlove/ICSharpCode.SharpZipLib.rar

    代码实现多文件,自定义文件,整目录打包等功能.好了..奉上代码:

    压缩打包代码

    调用也很简单:

    Code

    就这样.如果需要尽管拿走.

    (代码参考过网络上的资源,如有冒犯,莫怪莫怪~)

    由于上边代码对于大文件是一次读入,所以遇到大文件的时候是占用资源比较紧张。所以改为分段读取,每次读取64K数据:

                                string fileName = file.Replace(zipTopDirectory, "");
                                
    if (fileName.StartsWith("\\"))
                                    fileName 
    = fileName.Substring(1);
                                ZipEntry entry 
    = new ZipEntry(fileName);
                                entry.DateTime 
    = DateTime.Now;
                                zipedStream.PutNextEntry(entry);
                                
    for (long j = 0; j < fs.Length; j += 65536)
                                {
                                    
    int byteLength = 65536;
                                    
    if ((fs.Length - j) < 65536)
                                    {
                                        byteLength 
    = (int)(fs.Length - j);
                                    }

                                    
    byte[] buffer = new byte[byteLength];
                                    fs.Read(buffer, 
    0, byteLength);
                                    zipedStream.Write(buffer, 
    0, byteLength);
                                }
                                fs.Close();
  • 相关阅读:
    Linux命令:mapfile
    Linux命令:logout
    行式数据库和列式数据库的浅析
    hadoop常见错误集锦
    hadoop环境搭建遇到问题集锦
    杀毒的一点学习
    powerdesigner的学习
    突然的想法
    shell脚本入门教程(转)
    java classpath深入详解(转)
  • 原文地址:https://www.cnblogs.com/KenBlove/p/1270407.html
Copyright © 2011-2022 走看看