.net自带的库生成zip文件的方法
以下用一个例子来展示:
- 创建一个文件夹,里面可以包含任意的子目录。
创建一个控制台项目,添加一个类ZipManager,用来实现我们想要的操作。
为项目添加WindowsBase引用。(这个名字不太友好,但是与压缩相关的类就藏在里面)
在ZipManager.cs中添加对System.IO.Packaging命名空间的引用。
写一个构造函数,用来接收要执行压缩的文件路径。
创建一个方法ZipFolder,用来执行实际的压缩操作。在这个方法里面创建一个Package的实例。
创建一个函数ZipDirectory,用来递归遍历所有的子目录和子文件夹。
对每一个文件,创建一个PackagePart的实例。
注意这里面相对路径的生成过程:截取比源路径多出的部分,并且将右斜线替换成左斜线。
复制源文件的内容到Package里面,为此需要添加一个CopyStream方法。
ZipManager这个类就大功告成了。现在我们来调用这个类。
运行一下这个程序,在我们指定的位置,一个zip文件夹生成了。
双击打开,还真是有模有样那。
点评:
这个例子只是为了展示.net提供的这一功能。对于该例子,可以把它扩展的很完善。以下举一些可以扩展的地方:
1. 应用System.IO.Packaging.PackUriHelper类,可以很方便的生成PackagePart的Uri,必须像例子中那样自己生成Uri.
2. Package.CreatePart(Uri, String, CompressionOption)方法中的第三个参数,提供压缩方式。
3. 更多的使用技巧可以看这里:http://msdn.microsoft.com/zh-cn/library/system.io.packaging.aspx
相关推荐
-
.net自带的库生成zip文件的方法
以下用一个例子来展示: 创建一个文件夹,里面可以包含任意的子目录. 创建一个控制台项目,添加一个类ZipManager,用来实现我们想要的操作. 为项目添加WindowsBase引用.(这个名字不太友好,但是与压缩相关的类就藏在里面) 在ZipManager.cs中添加对System.IO.Packaging命名空间的引用. 写一个构造函数,用来接收要执行压缩的文件路径. 创建一个方法ZipFolder,用来执行实际的压缩操作.在这个方法里面创建一个Package的实例. 创建一个函数ZipDi
-
php生成zip文件类实例
本文实例讲述了php生成zip文件类.分享给大家供大家参考.具体如下: <?php /* By: Matt Ford Purpose: Basic class to create zipfiles */ class zipFile { public $files = array(); public $settings = NULL; public $fileInfo = array ( "name" => "", "numFiles"
-
PHP读取CURL模拟登录时生成Cookie文件的方法
本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法.分享给大家供大家参考.具体实现方法如下: 在使用PHP中的CURL模拟登录时会保存一个Cookie文件,例如下面的代码 复制代码 代码如下: $login_url = 'XXX'; $post_fields['email'] = 'XXXX'; $post_fields['password'] = 'XXXX'; $post_fields['origURL'] = 'XXX'; $post_fields['doma
-
php在线解压ZIP文件的方法
本文实例讲述了php在线解压ZIP文件的方法.分享给大家供大家参考.具体分析如下: 在PHP的函数库中只找到了个ZLIB的函数还跟压缩有点关系,但是使我失望的是他没能解ZIP的文件,但最后还是让我找到了解决的方法,就是通过PHP的程序执行函数来实现这个功能,因为现在能解ZIP文件的东西实在是太多啦,你要是不信,可以到有下载软件的地方找找看,保准你不会失望的,我的话不会错的. 下面就是该程序的原文件,upload.php代码如下: 复制代码 代码如下: <table border="0&qu
-
Python实现压缩和解压缩ZIP文件的方法分析
本文实例讲述了Python实现压缩和解压缩ZIP文件的方法.分享给大家供大家参考,具体如下: 有时我们需要在 Python 中使用 zip 文件,而在1.6版中,Python 就已经提供了 zipfile 模块可以进行这样的操作.不过 Python 中的 zipfile 模块不能处理多卷的情况,不过这种情况并不多见,因此在通常情况下已经足够使用了.下面我只是对一些基本的 zipfile 操作进行了记录,足以应付大部分的情况了. zipfile 模块可以让你打开或写入一个 zip 文件.比如: i
-
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
本文实例讲述了Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法.分享给大家供大家参考,具体如下: phpunit下载网站 http://www.phpunit.cn/ 一.安装PHPUnit 1.选择版本 我用的是php版本是5.6.25 所以我选择的是PHPUnit 5.7 2.安装过程 ① 为 PHP 的二进制可执行文件建立一个目录,例如 C:\bin ② 将 ;C:\bin 附加到 PATH 环境变量中 [将 php的目录 ;E:\wamp64\bin
-
Python实现压缩文件夹与解压缩zip文件的方法
本文实例讲述了Python实现压缩文件夹与解压缩zip文件的方法.分享给大家供大家参考,具体如下: 直接上代码 #coding=utf-8 #甄码农python代码 #使用zipfile做目录压缩,解压缩功能 import os,os.path import zipfile def zip_dir(dirname,zipfilename): filelist = [] if os.path.isfile(dirname): filelist.append(dirname) else : for
-
Node.js 在本地生成日志文件的方法
平常都使用console来打印 node 脚本执行时需要看到的信息,但这些信息也就只能在控制台查看.假如你希望将打印的信息输出到日志(log)文件查看的话,那就往下看看吧. 1.前言 期望: 每次运行脚本时,生成log日志存储到本地 每次执行脚本,之前日志内容清空 需要了解的知识点: fs new console.Console 2.什么是 fs 使用 node.js 对日志进行存储,就一定会对本地文件的增删改查,那么我们需要用到fs. 如果你写过 node,想必你应该见过它fs,fs全称为文件
-
Python使用qrcode二维码库生成二维码方法详解
安装qrcode库 pip install qrcode 声明 import qrcode 使用qrcode QRCode 方法 qrcode.QRCode( version=1, error_correction=qrcode.ERROR_CORRECT_L, box_size=10, border=4, image_factory=None, mask_pattern=None ) 参数解释: version:控制二维码的大小,取值范围从1到40.取最小值1时,二维码大小为21*21.取值为
-
Python使用PyYAML库读写yaml文件的方法
目录 一,YAML 简介 二,YAML 语法 三,安装第三方yaml文件处理库PyYAML 四,读取yaml文件 1,从yaml中读取字典 2,从yaml中读取list 3,从yaml中读取元组 4,从yaml中读取多组数据 五,写入yaml文件 1,单组数据写入yaml文件 2,多组数据写入yaml文件 Python中yaml文件的读写(使用PyYAML库).最近在搭建自动化测试项目过程中经常遇到yaml文件的读写,为了方便后续使用,决定记下笔记. 最近在搭建自动化测试项目过程中经常遇到yam
随机推荐
- 详解Angular2组件之间如何通信
- angularjs+bootstrap实现自定义分页的实例代码
- ExtJS 简介 让你知道extjs是什么
- Bootstrap select下拉联动(jQuery cxselect)
- Android中Toolbar随着ScrollView滑动透明度渐变效果实现
- Java语言一元运算符实例解析
- 全新感受Oracle 9i
- php socket客户端及服务器端应用实例
- PHP按指定键值对二维数组进行排序的方法
- php数组添加与删除单元的常用函数实例分析
- ASP网站中数据库被挂木马的解决方案
- php5.2的curl-bug 服务器被php进程卡死问题排查
- JQuery Tips(2) 关于$()包装集你不知道的
- JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)
- Javascript监视变量变化的方法
- bootstrap table sum总数量统计实现方法
- 浏览网页注册表被修改之迷及解决办法
- Android编程实现带有单选按钮和复选按钮的dialog功能示例
- yii框架builder、update、delete使用方法
- SESSION存放在数据库用法实例