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();
  • 相关阅读:
    手机端学习助手的说明书需求以及团队PM选择
    对其他组的作品的评审意见
    项目介绍
    beta版项目总结
    Beta版说明书
    Alpha版会议总结
    第一阶段绩效评估
    今日事意见汇总
    Alpha版使用说明
    评审建议
  • 原文地址:https://www.cnblogs.com/KenBlove/p/1270407.html
Copyright © 2011-2022 走看看