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 7 web服务基础知识
    Linux 6 Nginx
    Linux 5 MySQL、redis相关
    Linux 4 安装相关程序
    phpcms 路由配置
    ecmall 入口文件解析 引入了什么
    php 调用天气接口
    phpcms 加载微信类库,生成签名
    ecmall 学习记录2
    Jquery 遍历
  • 原文地址:https://www.cnblogs.com/KenBlove/p/1270407.html
Copyright © 2011-2022 走看看