ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Zip文件操作

2022-07-12 12:33:37  阅读:117  来源: 互联网

标签:文件 string zip 压缩 Zip 文档 操作 目录


概述

.net的IO操作(System.IO.Compression)支持对zip文件的创建、读写和更新。

参考:System.IO.Compression 命名空间

要求 :当.NET版本 大于或等于 .NET Framework 4.5.1 时才可用这个库

要对zip文件进行操作,主要用到以下三个类:

1、ZipFile。表示与一个zip文件操作相关的类。可以使用该类创建zip文件,或者打开zip文件。

2、ZipArchive。表示一个zip文档实例,可以通过它直接从流对象创建zip文档。ZipFile类主要是针对磁盘文件来进行操作,而ZipArchive表示的是zip包,不一定是存放在硬盘上的.zip文件,因为它可以基于流来创建,所以可以是存在于内存中,或者用于网络传输的数据。

3、ZipArchiveEntry。文档项实体。表示zip压缩包中的一个文件实体。zip文档中以文件为项实体,如果存在目录结构,就以当前文档为根,用相对路径来描述文件实体。比如:\目录1\目录2\文件1。

压缩

首先看一下如何从现有目录(包含该目录下的所有内容)来创建新的.zip文件。
ZipFile类公开了CreateFromDirectory方法,这个方法有几个重载,如果不考虑其他因素,只是简单创建.zip文件,可以使用以下重载:

static void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName)

方法不返回内容,sourceDirectoryName参数指定要用来创建压缩文档的源目录,destinationArchiveFileName就是新创建的压缩文件的完整路径,如c:\abc.zip。

如果想控制压缩级别,可以使用以下重载:

void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory)

compressionLevel参数表示压缩的层次,includeBaseDirectory参数表示是否把sourceDirectoryName中的目录名也放到.zip文件的根中,如果是就为true,否则为false。

解压

与创建压缩文件相对,ZipFile类也公开了ExtractToDirectory方法,该方法的作用就是把指定.zip文件中的内容解压到指定的目录下。其中较简单的一个重载如下:

static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName)

sourceArchiveFileName参数指定要解压的zip文件的完整路径或相对路径;destinationDirectoryName参数指定一个目录,被压的内容就放到这个目录下。

ZipArchive与ZipArchiveEntry

来看看如何扫描出.zip文件中的文件列表。

ZipFile类带了两个方法:要是只考虑对.zip文件进行只读处理,调用OpenRead方法就可以了。如果希望对文件进只读以外的处理,请调用Open方法。

不管你调用的是哪个方法,都会返回一个ZipArchive实例,它表示一个zip文档,我们在代码中可以对该文档进行访问或修改。

ZipArchive对象有个Entries属性,表示zip文件中所包含的文件列表,类型只会把压缩包中的文件视为一个实体,目录不被作为实体处理。该属性可以返回一个只读的ZipArchiveEntry实例列表,列表中的每一个ZipArchiveEntry对象表示压缩包中的一个文件,可以删除。

ZipArchiveEntry类有几个属性可以获取文件信息。

Name:文件名,不包含相对路径。

FullName:包含相对路径和文件名。

Length:压缩前文件大小。

CompressedLength:压缩后文件大小。

ICSharpCode.SharpZipLib

当.NET版本 小于 .NET Framework 4.5.1 时可以选择用此库

官网: ICSharpCode.SharpZipLib

SharpZipLib 文件/文件夹压缩

C# ICSharpCode.SharpZipLib.dll文件压缩和解压功能类整理,上传文件或下载文件很常用

 

标签:文件,string,zip,压缩,Zip,文档,操作,目录
来源: https://www.cnblogs.com/peterYong/p/15496061.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有