以下用一个例子来展示:
-
创建一个文件夹,里面可以包含任意的子目录。
创建一个控制台项目,添加一个类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
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月29日
2024年11月29日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]