C#编程实现文件压缩生成zip文件

作者:小菜 更新时间:2025-02-26 点击数:
简介:平时我们创建Zip文件的时候,要么用现成的软件,要么用第三方的开源库。

其实用.net自带的类操作起来也非常方便。

以下用一个例子来展示:创建一个文件夹,里面可以包

【菜科解读】

平时我们创建Zip文件的时候,要么用现成的软件,要么用第三方的开源库。

其实用.net自带的类操作起来也非常方便。

以下用一个例子来展示:

创建一个文件夹,里面可以包含任意的子目录。

创建一个控制台项目,添加一个类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)方法中的第三个参数,提供压缩方式。

编程,实现,文件,压缩,生成,zip,平时,我们,创建,

离职前一定要删除的文件?离职要删除哪些文件

在离职后,一定要对自己使用的电脑进行清理,尤其是一些隐私文件,一定要删除,那么,离职有哪些文件要删除?下面菜科网小编就带来介绍。

离职要删除哪些文件离职前记得一定要清理脑,避免隐私和聊天记录被人看光了。

一、上网记录删除Win+S打开搜索面板,搜索「控制面板」并打开点击「网络和Internet」。

接着点击Internet选项中的「删除浏览的历史记录和cookie」。

二、清除电脑使用记录1.打开系统设置—隐私—活动历史记录。

2.取消勾选【在此设备上存储我的活动历史记录】。

3.点击页面底部的「清除」按钮,就能完全清除之前存储的活动历史记录。

十八世纪的意大利做干了哪些事情 为什么能够实现统一呢

话说,自成立以后,终于先是在公元1866年的时候从奥地利手里收回了威尼斯,接着就又在公元1870年的时候,收回了教皇的辖区,实现了全境的统一。

那么,这究竟是怎么回事呢?下面我们就一起前往查看一番。

首先,让我们先将目光移到公元1860年5月6日的早晨,就会发现,在意大利热那亚城外的港口,有两艘旧船正稳稳地停着,似乎在等待着什么重要任务。

而此时,1000多名身穿红衬衫,头戴阔边帽的意大利人则迅速登上了这两艘船。

接着,只见有一个中年人在大声呼喊:“为解放西西里岛的同胞,为意大利的统一,前进!”然后,轮船就像飞一样,消失在了漆黑的海洋里。

那么,这又是咋回事呢?原来那个高喊口号的中年人叫加里波第。

他生于1807年,是一个水手出身。

青年的时候就由于在反对外国占领者的过程中失败而逃到了拉丁美洲,然后,在1848年回国以后,就成为了意大利统一运动的领导者。

要知道,统一对于当时的意大利而言非常重要。

因为当时的意大利至少也分裂为了数个小国。

而北部的几个小国则被奥地利占领,南部的西西里王国则被西班牙占领,中部地区则归属于教皇管理,可以说是。

因此,当西西里王国的许多爱国老百姓听闻有意大利统一运动的武装力量前来的时候,都感到格外高兴。

他们马上就兴高采烈地到码头迎接,而见面之后,便开始商量对策。

但就在此时,炮声响了。

原来殖民者西班牙已经知道了意大利统一运动武装已经到达了西西里岛的消息,他们马上派遣部队前来攻击。

但是,令人可笑的是,正当加里波第他们想要还击的时候,敌人的炮声却突然停了。

原来港口内还有两艘英国商船,他们刚提出抗议,西班牙的士兵们便不敢再进行攻击了。

于是,加里波第的红衫军就很快就以港口为基地,借机又扩大了规模,接着,在实力大增之后,加里波第便下令向西西里岛的首府巴勒莫进军。

但是,当他们刚刚出发在进军的路上,就遇到了一座梯形的高山,山上则有两倍于红衫军的敌人占领。

按道理说,一看这情况,红衫军就应该退缩了。

然而,加里波第的红衫军却并没有退缩。

在经过了一阵猛冲猛打之后,红衫军就占领了这一座高山。

然后,兵临首府巴勒莫。

于是,5月27日的凌晨,天还没有亮,总攻就开始了!在持续了两天两夜的战斗后,西班牙占领军和西西里王国的反动军队是死的死,逃的逃,红衫军取得了胜利。

但是,为了不让敌人有喘息的机会,当年的八月,加里波第就带领着红衫军向着西西里王国的首都那不勒斯进军。

随后,在当地人民的支持下,那不勒斯也获得了解放。

然后,1860年11月初的一天,意大利新国王厄马努埃尔便和意大利统一运动的最高首领加里波第手拉手走在了那不勒斯的大街上,接受全市人民对他们得热烈欢迎。

至此,意大利开始走向了统一之路。

总之,十八世纪的意大利为何能够实现全境统一?来源于意大利人民不屈不挠的战斗意志。

随机文章塞普蒂米乌斯·西弗勒斯拱门简介日本富士山简介详解c5运输机和c17的区别,造价3亿美元的C17性能更优尼古拉特斯拉有多恐怖,击败爱迪生成为现代电气学之父地表喀斯特地貌类型,喀斯特地貌的形成过程(大自然风化而成)

加入收藏
               

C#编程实现文件压缩生成zip文件

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录