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

C#基于ftp自动更新、自动下载 思路: 1、每次启动该exe程序时,首先通过在配置文件中读取ftp的ip、端口号、用户名、密码等基本信息,(注:ftp上与exe同级目录下单独放了一个txt文档,文档中内容:version:2.1)所以通过ftp的基本信息去,读取这个txt文档中的内容-版本号:即2.1,所以服务器的版本为2.1; 2、读取本地的版本号:读取方法,在本地安装目录下有一个txt文档,文档中内容:version:2 阅读详情

一、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.68.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

C#学习笔记(八):替换文件夹和文件名及文件内容,移动到新的文件夹路径,再压缩打包 public class ZipFloClass { public void ZipFile(string strFile, string strZip) { var len = strFile.Length; var strlen = strFile[... 阅读详情

相关推荐

[WPF]程序版本自动更新模块写法(C#,.NET4.5以上)

[WPF]程序版本自动更新模块写法(C#,.NET4.5以上) 代码用于从服务器下载程序并自动更新,需要.NET4.5及以上版本。 相比于其他教程中可用于.NET2.0或3.0版本的代码,本文中引用了一些新的方法,代码量减少。最后面附有完整代码。 简单说一下工作流程: 1. 主程序A调起升级程序B 2. B从服务器获取更新程序列表,打印更新信息。 3. B杀死A进程(此步骤可以放在步骤...

duanhy的专栏 7466

C# 解压zip文件,并覆盖

使用ZipFile.ExtractToDirectory方法,将zip文件解压到一个临时文件夹,然后检查解压后的文件是否在目标文件夹中已存在,如果是,则删除已存在的文件,并将新解压的文件移动到目标文件夹¹。使用ZipFile.ExtractToFile方法,并将overwrite参数设置为true,这样可以覆盖同名的目标文件。

ivanwfy的专栏 3294

C#解压Zip文件到指定目录

/压缩文件文件路径。前面学习了怎么样把目录压缩到一个Zip文件,现在来学习怎么样把压缩文件解压到目录,这是学习解压缩文件的一个必须的操作。最后一个参数就是文件名称使用不同编码时需要使用的参数,如果是不同国家的操作系统就需要适应了。将指定 zip 存档中的所有文件解压缩到文件系统的一目录下,并使用项名称的指定字符编码。主要有两个参数,第一个参数是要解压缩的文件名称,第二个参数是解压缩到所在的目录。将指定 zip 存档中的所有文件都解压缩到文件系统的一个目录下。

大坡3D软件开发 1014

C#解压zip文件

引入 using System.IO.Compression; 解压 ZipFile.ExtractToDirectory(currentPath+"jre.zip", currentPath);

天恒 3088

.NET C# 程序自动更新组件

本来博主想偷懒使用AutoUpdater.NET组件,但由于博主项目有些特殊性和它的功能过于多,于是博主自己实现一个轻量级独立自动更新组件,可稍作修改集成到大家自己项目中,比如:WPF/Winform/Windows服务。大致思路:发现更新后,从网络上下载更新包并进行解压,同时在 WinForms 应用程序中显示下载和解压进度条,并重启程序。为了保证安全,应验证下载文件的完整性,例如使用SHA256校验和,这些博主就不做实现与讲解了,目前的功能已经完成了基本的自动更新逻辑。控件,用于显示进度和信息提示。

xhp618的博客 85

WinForms桌面应用自动更新实现教程

本文还有配套的精品资源,点击获取 简介:本文介绍了如何为使用C#开发的Windows Forms应用实现自动更新功能。通过FTP下载和文件解压技术,应用能够自动检测并更新至新版本,确保软件维护和bug修复的便捷性。文章详细解析了自动更新机制、文件下载和解压流程、更新逻辑的实现以及错误处理和日志记录等关键技术点。 1. Windows Forms (WinForms...

weixin_33375360的博客 1618

.NET 程序自动更新组件

前言本来博主想偷懒使用AutoUpdater.NET组件,但由于博主项目有些特殊性和它的功能过于多,于是博主自己实现一个轻量级独立自动更新组件,可稍作修改集成到大家自己项目中,比如:WPF/Winform/Windows服务。大致思路:发现更新后,从网络上下载更新包并进行解压,同时在 WinForms 应用程序中显示下载和解压进度条,并重启程序。以提供更好的用户体验。系统架构概览自动化软件更新系统...

weixin_68436326的博客 495

C#远程自动更新源码项目实战

随着软件行业的发展,远程自动更新已成为许多桌面应用程序不可或缺的功能。它允许开发者在不直接接触用户计算机的情况下,提供新功能、修复漏洞或优化性能。远程自动更新简化了软件分发流程,降低了用户的使用门槛,也使得软件维护变得更加高效和便捷。在本文中,我们将介绍远程自动更新的基本原理、C#语言在实现该功能中的优势、网络通信的实现、版本控制与文件处理、安装过程与用户交互、以及安全机制与更新策略等内容。这些章节将构成一个完整的远程自动更新解决方案,帮助开发者构建更完善的软件产品。

weixin_36212459的博客 873

C#之使用AutoUpdater自动更新客户端

安装NuGet包 在Visio studio中右击解决方案,选择管理NuGet包,搜索安装Autoupdater.NET.Official。 工作简介 从服务器下载包含更新文件的XML文件,从中获取软件的最新版本信息。如果软件的最新版本大于用户PC上安装的当前软件版本,则会向用户显示更新对话框。当然,也可以设置按钮事件进行点击下载更新文件。如果文件是压缩包,会自动将压缩包的内容解...

b345339626492805的博客 2010

使用IL Spy解析.NET DLL文件的完全指南

DLL,即动态链接库(Dynamic Link Library),是Windows操作系统中实现共享函数库的一种方式。它使得程序可以共享一个程序模块,而不需要将库代码复制到每个程序中。DLL文件通常包含可由多个应用程序同时使用的代码和数据。IL Spy 是一个流行的 .NET 反编译器和程序集浏览器。它允许开发者查看 .NET 程序集的内容,包括 DLL 和 EXE 文件,这些文件通常包含编译后的中间语言(IL)代码。

weixin_30591519的博客 1320

C#与Mono技术在Android平台开发截图功能源码解析

Android SDK是开发Android应用不可或缺的部分,它包含了构建应用所需的所有工具和库文件。主要组件包括SDK管理器、构建工具、平台工具和不同版本的Android平台。开发者可以通过SDK管理器下载和更新这些组件。性能分析是开发过程中的重要环节,它帮助开发者发现性能瓶颈和内存泄漏等问题。Visual Studio 2010提供了“诊断工具”,可以实时监控应用性能,并生成报告和日志。通过使用这些工具,开发者可以了解应用在不同场景下的表现,并采取优化措施。

weixin_31961675的博客 1026

Unity全能解压缩库UniZip:纯C#实现与跨平台资源管理实战

在游戏开发与软件工程中,数据压缩与解压是处理资源分发、网络传输和存储优化的基础技术。其核心原理是通过特定算法减少数据体积,从而节省带宽与磁盘空间。这项技术的工程价值在于提升应用性能、降低运营成本并改善用户体验。在Unity3D开发领域,资源热更新、Mod加载和网络资源包处理是典型应用场景。开发者常面临跨平台兼容性、内存管理及性能优化等挑战。针对这些痛点,纯C#实现的解压缩方案成为关键,它通过避免原生插件依赖,提供一致的跨平台支持。例如,UniZip库便基于这一理念设计,支持ZIP、7Z等主流格式,并集成流式

weixin_30896825的博客 387

[V-10]ARMv8/v9-CPU Virtualization-CPU虚拟化架构简介(vCPU/vPE)

本文简要介绍了CPU虚拟化架构的基础知识。

基层架构师的分享 1267

net8设置智能提示为中文

net8设置智能提示为中文

qq_22325259的博客 614

高压脉冲发生器的各种电路图

高压脉冲发生器的各种电路图

qq_65102825的博客 5900

手把手教你用ET-BERT预训练模型搞定加密流量分类(附完整代码)

本文详细介绍了如何使用ET-BERT预训练模型实现加密流量分类,包括环境配置、数据预处理、模型微调及优化策略。通过实战代码示例,帮助开发者快速掌握这一技术,提升网络安全领域的加密流量分析能力。

weixin_29166013的博客 493

自制汉化工具 文件提取/导入/压缩工具

文件提取导入/压缩工具 友人汉化就喜欢玩手工 自己手工提取-> 解压缩 -> 汉化->导入 我根据他的需求 做出文件提取/导入/压缩工具 这个 压缩工具 不能打包 也就是不能制作那种完整压缩包(最后那个工具可以制作完整压缩包) 这样可以直接导入游戏 文件提取工具/导入 基于二进制模式 可以用于替换包里面的文件 所有工具 运行需要.net f...

bulote 186

汽车诊断服务(UDS——0x11服务解析)

ECU复位服务(0x11)详解:该服务支持硬件/钥匙开关/软件三种复位类型(0x01-0x03),复位前需发送肯定响应。请求格式为11+子功能,响应含51+子功能。典型应用需配合安全访问流程,测试时需监控CAN总线通信及DTC状态。复位后ECU将返回默认会话,期间不处理任何诊断请求。服务在编程会话且安全解锁后执行,硬复位会初始化存储数据。

从事汽车行业 979
上一篇: Win7 支持.net framework的最高版本是4.5.2
下一篇: AJAX异步请求(C#、JAVA)、HTMl ajax异步请求数据(JQuery异步请求ajax,JavaScript异步请求ajax)
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值