/// <summary>
/// 文件压缩
/// </summary>
/// <param name="filesUrl">多个文件路径</param>
/// <param name="zipStr">压缩文件名</param>
public static void ZipFile(List<string> filesUrl, string zipStr)
{
try
{ //这行代码表示文件名称有中文字。不然好像会出现乱码
Encoding gbk = Encoding.GetEncoding("gbk");
ZipConstants.DefaultCodePage = gbk.CodePage;
if (filesUrl != null && filesUrl.Count > )
{
ZipOutputStream zipStream = new ZipOutputStream(File.Create(zipStr));
zipStream.SetLevel();
foreach (string itemStr in filesUrl)
{
zip(itemStr, zipStream);
}
zipStream.Finish();
zipStream.Close();
}
}
catch (Exception ex)
{
Common.SetException("类库", ex);
}
}
/// <summary>
/// 填写文件
/// </summary>
/// <param name="fileStr">文件路径</param>
/// <param name="zipStream"></param>
private static void zip(string fileStr, ZipOutputStream zipStream)
{
try
{
Crc32 crc = new Crc32();
if (File.Exists(fileStr))
{
FileStream fs = File.OpenRead(fileStr);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, , buffer.Length);
ZipEntry entry = new ZipEntry(fileStr.Substring(fileStr.LastIndexOf("\\") + )); entry.DateTime = DateTime.Now;
entry.Size = fs.Length; fs.Close();
crc.Reset();
crc.Update(buffer);
entry.Crc = crc.Value;
zipStream.PutNextEntry(entry);
zipStream.Write(buffer, , buffer.Length);
}
}
catch (Exception ex)
{
Common.SetException("类库", ex);
}
}

压缩DLL下载 http://files.cnblogs.com/files/changeMe/SharpZipLib.rar

C#文件压缩的更多相关文章

  1. Linux 文件压缩与归档

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  2. php多文件压缩下载

    /*php多文件压缩并且下载*/ function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. whil ...

  3. Zip文件压缩(加密||非加密||压缩指定目录||压缩目录下的单个文件||根据路径压缩||根据流压缩)

    1.写入Excel,并加密压缩.不保存文件 String dcxh = String.format("%03d", keyValue); String folderFileName ...

  4. Java实现文件压缩与解压

    Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例.(转载自http://www.puiedu. ...

  5. 下载zip格式文件(压缩Excel文件为zip格式)

    Mongodb配置文件参考这一篇:http://www.cnblogs.com/byteworld/p/5913061.html package util; import java.io.Buffer ...

  6. 分享一个ASP.NET 文件压缩解压类 C#

    需要引用一个ICSharpCode.SharpZipLib.dll using System; using System.Collections.Generic; using System.Linq; ...

  7. 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的生命周期和程序的生命周期

    [源码下载] 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的 ...

  8. linux文件压缩与打包

    在linux中常见的压缩命令 首先,在linux中压缩文件的扩展名大多是 *.gz gzip程序压缩的文件 *.bz2 bzip2程序压缩的文件 *.tar tar程序打包的数据,并没有压缩过 *.t ...

  9. 关于ZIP大文件压缩

    实测:4.76 GB一个单文件压缩没有什么问题. import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...

  10. linux下文件压缩与解压操作

    对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap.可 ...

随机推荐

  1. Linux下利用fork()创建子进程并使父进程等待子进程结束

    int status; pid_t t = fork(); if(t){     waitpid(t, &status, 0); }else{     system("vi temp ...

  2. 【原】win7下调整分区

    由于装系统时硬盘分区极度不合理,导致现在装一些比较大的开发软件根本不能装,但是又不想重装系统调整分区,而且还不想让已有的文件受到一点伤害,毕竟数据无价啊.几番搜索后,发现了一款比较好用的硬盘管理软件  ...

  3. SQL Server 中@@IDENTITY的用法

    原文地址:http://www.studyofnet.com/news/145.html 本文导读:@@IDENTITY是返回上次插入的标识值,标识值一般指的是自动增长值.但是如果想只返回插入到当前作 ...

  4. Python学习笔记9-Python 链接MySql数据库

    Python 链接MySql数据库,方法很简单: 首先需要先 安装一个MySql链接插件:MySQL-python-1.2.3.win-amd64-py2.7.exe 下载地址:http://dev. ...

  5. 怎样解决xcode里开发cocos2dx改动lua脚本后不刷新的问题

    用xcode来开发cocos2dx,结果发现一个非常纠结的问题,假设我一旦改动了一个Lua文件,我必须clean之后再build,否则改动的Lua文件不会体现出来.这是一个非常令纠结的结果,特别是我要 ...

  6. JFreeChat

    JFreeChart教程(一) 分类: java Component2007-05-31 15:53 39849人阅读 评论(30) 收藏 举报 jfreechartimportdataset图形ap ...

  7. NOIP第二次模拟赛 stage1【划分数列(seq.pas/c/cpp)

    7划分数列(seq.pas/c/cpp) [题目描述] 给你一个有n个元素的数列,要求把它划分成k段,使每段元素和的最大值最小 [输入格式] 第一行两个正整数n,k 第二行为此数列ai [输出格式] ...

  8. JAVA注释方式--目前用的

    代码整洁,规范,可读,注释是关键之一. 1.整个类文件注释 注释结构:/* * @(#){类名称}.java       {创建时间} * * {某人或某公司具有完全的版权} * {使用者必须经过许可 ...

  9. Ajax中XML和JSON格式的优劣比较

    刚做完一个小的使用Ajax的项目.整个小项目使用JavaScript做客户端,使用PHP做服务器端.利用xmlHttpRequest组件作为交互工具,利用XML作为数据传输的格式.做完后基本做一个简单 ...

  10. 用Servlet实现聊天室设计

    实验一   Servlet编程 一.实验目的 1.熟悉Java EE编程环境JDK和NetBeans的安装,配置和使用: 2.掌握Servlet的编写及部署: 3.掌握Servlet的工作原理和编程接 ...