C#下载文件(.net下载文件)实现更新替换文件,文件解压缩。

一、C#实现解压文件(对文件。文件夹zip压缩,解压)
首先C#进行文件解压,压缩需要引入这个几个命名空间
zip引入命名空间
简单快速的使用方式 解压

ZipFile.ExtractToDirectory("压缩文件", “解压到那个目录下”);

ZipFile.ExtractToDirectory 方法

重载 Value
ExtractToDirectory(String, String) 将指定 zip 存档中的所有文件都解压到文件系统的一目录下。
ExtractToDirectory(String, String, Encoding) 将指定 zip 存档中的所有文件解压缩到文件系统的一目录下并指定的条目名称字

ExtractToDirectory(String, String)
参数
sourceArchiveFileName
String
到要解压缩存档的路径。
destinationDirectoryName
String
到放置解压缩文件的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
ExtractToDirectory(String, String, Encoding)
参数
sourceArchiveFileName
String
到要解压缩存档的路径。
destinationDirectoryName
String
到放置解压缩文件的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
entryNameEncoding
Encoding
在存档中读取或写入项名时使用的编码。 仅当需要针对具有不支持条目名称的 UTF-8 编码的 zip 归档工具和库的互操作性进行编码

	//网络请求地址(这是一个压缩文件)
	string updateZipWeb = "http://192.168.88.53:8067/DB/Update.zip";
	//网络请求后文件存放地址
	string saveZip = AppDomain.CurrentDomain.BaseDirectory + "\\update.zip";
	//开始群落请求下载zip文件并保存
	using (WebClient webClient = new WebClient())
	  {
	     webClient.DownloadFile(updateZipWeb, saveZip);//下载文件
	  }
	 //将saveZip压缩文件解压到当前项目目录下,解压后当前目录会有一个压缩文件的文件夹例如:update
	ZipFile.ExtractToDirectory(saveZip, AppDomain.CurrentDomain.BaseDirectory + "\\");
	DirectoryInfo directoryInfo = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\\" + "update");
	//将update目录全部拷贝到当前项目目录下
	CopyFile(directoryInfo, AppDomain.CurrentDomain.BaseDirectory+"\\");
	File.Delete(saveZip);//删除压缩文件
	Directory.Delete(AppDomain.CurrentDomain.BaseDirectory + "\\" + "update", true);//删除压缩目录

ZipFile.CreateFromDirectory 方法

二、ZipFile.CreateFromDirectory 方法创建压缩文件
创建 zip 存档,该存档包含文件和指定目录的目录。

CreateFromDirectory(String, String) Value
CreateFromDirectory(String, String) 创建 zip 存档,该存档包含文件和指定目录的目录
CreateFromDirectory(String, String, CompressionLevel, Boolean) 创建 zip 存档,该存档包括指定目录的文件和目录,使用指定压缩级别,以及可以选择包含基目录
CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) 创建 zip 存档,该存档包括文件和指定目录的目录,使用指定压缩级别和条目名称的字符编码,以及可以选择包含基目录。

CreateFromDirectory(String, String)
参数
sourceDirectoryName
String
到要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
destinationArchiveFileName
String
要生成的存档路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。

CreateFromDirectory(String, String, CompressionLevel, Boolean)
参数
sourceDirectoryName
String
到要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
destinationArchiveFileName
String
要生成的存档路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
compressionLevel
CompressionLevel
指示创建项时是否强调速度或压缩有效性的枚举值之一。
includeBaseDirectory
Boolean
包括从在存档的根的 sourceDirectoryName 的目录名称,则为 true;仅包含目录中的内容,则为 false 。

CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)
参数
sourceDirectoryName
String
到要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
destinationArchiveFileName
String
要生成的存档路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
compressionLevel
CompressionLevel
指示创建项时是否强调速度或压缩有效性的枚举值之一。
includeBaseDirectory
Boolean
包括从在存档的根的 sourceDirectoryName 的目录名称,则为 true;仅包含目录中的内容,则为 false 。
entryNameEncoding
Encoding
在存档中读取或写入项名时使用的编码。 仅当需要针对具有不支持条目名称的 UTF-8 编码的 zip 归档工具和库的互操作性进行编码时,为此参数指定值。

如果你想更是从层次的了解可以学习微软:
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.compression.zipfile?view=netframework-4.8

发布了27 篇原创文章 · 获赞 8 · 访问量 3512

猜你喜欢

转载自blog.csdn.net/Kiss_code/article/details/102902174