C# 下载文件2
从服务下载压缩包 过程
发起请求 HttpWebRequest
断点续传 HttpWebRequest.AddRange()
获取服务资源的响应 HttpWebResponse
设置下载进度条
解压压缩包 ZipFile
using System;
using System.IO;
using System.IO.Compression;
using System.Net;namespace Test01
{class Program{static void Main(string[] args){FileStream localFileStream = null;Stream responseStream = null;string url = "http://DotNet.test/Dome.zip";//下载到本地文件的路径string localpath = System.AppDomain.CurrentDomain.BaseDirectory + "Demo.zip";try{//想服务发出请求。HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);webRequest.Timeout = 10000;#region 断点续传//断点续传:如果文件存在,就获取文件的大小 N 单位(字节)long localFileLength = 0;//检查本地文件信息FileInfo info = new FileInfo(localpath);if (info.Exists){localFileLength = info.Length;webRequest.AddRange(localFileLength);localFileStream = info.Open(FileMode.Append, FileAccess.Write);}else{localFileStream = info.Create();}#endregion//获取服务器资源的响应HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();//获取请求返回的内容长度(压缩包的总体积)long totalBytes = webResponse.ContentLength;//获取响应流webResponse.GetResponseStream();byte[] by = new byte[1024];//获取字节数量int osize = responseStream.Read(by, 0, by.Length);//已下载数量 long tocalDownloadedByte = 0;//下载进度double percent = 0;while (osize > 0){先检查是否有按键请求,如果有,判断是否为回车键,如果是则退出循环 //if (Console.KeyAvailable && System.Console.ReadKey(true).Key == ConsoleKey.Enter)//{//isBreak = true;//break;//}tocalDownloadedByte += osize;//项文件写入localFileStream.Write(by, 0, osize);percent = tocalDownloadedByte / (float)totalBytes * 100;osize = responseStream.Read(by, 0, by.Length);Console.SetCursorPosition(0, 0);Console.WriteLine($"下载进度:{ (percent).ToString("F2") }% ");}localFileStream.Close();responseStream.Close();Console.SetCursorPosition(0, 1);Console.WriteLine("下载完成!");#region 解压文件string targetfolderName = localpath.Replace("Demo.zip", string.Empty);ZipFile.ExtractToDirectory(localpath, targetfolderName);//解压#endregion}catch (Exception ex){Console.WriteLine($"错误:{ ex.Message }");}finally{if (localFileStream != null){localFileStream.Close();}if (responseStream != null){responseStream.Close();}}Console.ReadKey();}}
}
相关文章:
C# 下载文件2
从服务下载压缩包 过程 发起请求 HttpWebRequest 断点续传 HttpWebRequest.AddRange() 获取服务资源的响应 HttpWebResponse 设置下载进度条 解压压缩包 ZipFile using System; using System.IO; using System.IO.Compression; using System.Net;namespace Test01 {clas…...
Unity | Tilemap系统
目录 一、准备工作 1.插件导入 2.资源导入 二、相关组件介绍 1.Grid组件 2.Tilemap组件 3.Tile 4.Tile Palette 5.Brushes 三、动态创建地图 四、其他功能 1.移动网格上物体 2.拖拽缩放地图 Unity Tilemap系统为2D游戏开发提供了一个直观且功能强大的平台ÿ…...
CSS选择符和可继承属性
属性选择符: 示例:a[target"_blank"] { text-decoration: none; }(选择所有target"_blank"的<a>元素) /* 选择所有具有class属性的h1元素 */ h1[class] { color: silver; } /* 选择所有具有hre…...
C++升级软件时删除老版本软件的桌面快捷方式(附源码)
删除桌面快捷方式其实是删除桌面上的快捷方式文件,那我们如何去删除桌面快捷方式文件呢?软件可能已经发布过多个版本,其中的一些版本的快捷方式文件名称可能做了多次改动,程序中不可能记录每个版本的快捷方式名称,没法直接去删除快捷方式文件。本文就给出一种有效的处理办…...
github国内加速访问有效方法
这里只介绍实测最有效的一种方法,修改主机的Hosts文件,如果访问github网站慢或者根本无法访问的时候可以采用下面方法进行解决。 1、搜索一个IP查询网站 首先百度搜索选择一个IP查询的网站,这里我用下面这个网站(如果该网站失效…...
如何处理JavaScript中的浮点数精度问题
在开发过程中,特别是涉及到金额计算或需要精确比较的场景,浮点数精度问题是一个常见而重要的挑战。本文将介绍在JavaScript中如何识别、理解和解决这些问题,并提供一些实用的技巧和建议。 1. 问题背景 JavaScript中的浮点数采用IEEE 754标准…...
ASPICE标准与ASPICE认证:提升汽车软件开发质量与效率的关键途径
在当今日新月异的科技时代,软件产品的质量和可靠性成为了企业赢得市场的关键。而ASPICE(Automotive SPICE)标准,作为汽车行业中软件过程评估的国际通用标准,正逐渐引起行业的广泛关注。那么,ASPICE标准究竟…...
easyexcel的简单使用(execl模板导出)
模板支持功能点 支持列表支持自定义头名称支持自定义fileName支持汇总 模板示例 操作 pom引入 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version></dep…...
代码随想录算法训练营第39天|● 62.不同路径 ●63. 不同路径 II
不同路径 62. 不同路径 - 力扣(LeetCode) 1.确定dp数组(dp table)以及下标的含义 dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。 2.确定递推公式 …...
【DevOps】 什么是容器 - 一种全新的软件部署方式
目录 引言 一、什么是容器 二、容器的工作原理 三、容器的主要特性 四、容器技术带来的变革 五、容器技术的主要应用场景 六、容器技术的主要挑战 七、容器技术的发展趋势 引言 在过去的几十年里,软件行业经历了飞速的发展。从最初的大型机时代,到后来的个人电脑时代,…...
使用pnpm创建vue3项目
https://pnpm.io/zh/ 全局安装: npm install -g pnpm 检查版本: pnpm -v 创建vue3项目: pnpm create vuelatest 项目装包: pnpm install 运行项目: pnpm dev 命令行: https://pnpm.io/zh/pnpm-cli pnpm …...
【软件测试】43个功能测试点总结
🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试…...
Python — — GPU编程
Python — — GPU编程 要想将Python程序运行在GPU上,我们可以使用numba库或者使用cupy库来实现GPU编程。 壹、numba Numba 是一个开源的 JIT (Just-In-Time) 编译器,它可以将 Python 代码转换成机器代码以提高性能。Numba 特别适用于需要高性能计算的…...
C#中的枚举类-自定义属性
在实际开发过程中,我们常常会用到枚举类,使用枚举的时候往往有着各种使用条件,如何给枚举加入使用条件呢? 答案就是我们的——自定义属性 废话不多说,上代码 枚举类 首先我们要有一个枚举类 public enum XXXX枚举…...
多态深度剖析
前言 继承是多态的基础, 如果对于继承的知识还不够了解, 可以去阅读上一篇文章 继承深度剖析 基本概念与定义 概念: 通俗来说,就是多种形态。具体点就是去完成某个行为, 当不同的对象去完成时会产生出不同的状…...
OSPF被动接口配置(华为)
#交换设备 OSPF被动接口配置 一、基本概念 OSPF被动接口,也称为抑制接口,即将路由器某一接口配置为被动接口后,该接口不会再接受和发送OSPF报文 二、使用场景 在路由器与终端相近或者直接相连的一侧配置被动接口 因为OSPF会定期发送报文…...
Android --- 异步操作
同步和异步的差异 同步:在发生某件事后什么也不做,直到该事件完成后,再继续进行 异步:在某件事发生后,可以在等待他完成的时候去处理其他事件,等到该事件发生完成后,再回过头来处理它。 异步…...
(55)MOS管专题--->(10)MOS管的封装
(10)MOS管的封装 1 目录 (a)IC简介 (b)数字IC设计流程 (c)Verilog简介 (d)MOS管的封装 (e)结束 1 IC简介 (a)在IC设计中,设计师使用电路设计工具(如EDA软件)来设计和模拟各种电路,例如逻辑电路、模拟电路、数字信号处理电路等。然后,根据设计电路的…...
超高清图像生成新SOTA!清华唐杰教授团队提出Inf-DiT:生成4096图像比UNet节省5倍内存。
清华大学唐杰教授团队最近在生成超高清图像方面的新工作:Inf-DiT,通过提出一种单向块注意力机制,能够在推理过程中自适应调整内存开销并处理全局依赖关系。基于此模块,该模型采用了 DiT 结构进行上采样,并开发了一种能…...
网络安全 - DNS劫持原理 + 实验
DNS 劫持 什么是 DNS 为什么需要 DNS D N S \color{cyan}{DNS} DNS(Domain Name System)即域名系统。我们常说的 DNS 是域名解析协议。 DNS 协议提供域名到 IP 地址之间的解析服务。计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。用…...
MyBatis的运行原理
目录 1、目的:梳理一下MyBatis运行时的几个对象,我们需要搞清楚他们的作用,进而需要理解mybatis的整个工作流程和执行原理。 2、简要概括各个类 2.1 Resources 作用:编写资源加载类,使用类加载器加载 配置文件(myb…...
算法题解记录29+++全排列(百日筑基)
一、题目描述 题目难度:中等 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示…...
苹果AI功能,AI训练数据缺乏,SD3推出,MJ6推出新特性
更多信息: https://agifun.love 智源社区 2024智源大会议程公开丨大模型前沿探索 2024年6月14日-15日,第6届北京智源大会将以线下与线上结合的形式召开,线下会场设在中关村国家自主创新示范区会议中心。2024智源大会再次以全球视野&#x…...
超越中心化:Web3如何塑造未来数字生态
随着技术的不断发展,人们对于网络和数字生态的期望也在不断提升。传统的中心化互联网模式虽然带来了便利,但也暴露出了诸多问题,比如数据滥用、信息泄露、权力集中等。在这样的背景下,Web3技术应运而生,旨在打破传统中…...
【ic-tool】timegen使用
一、前言 TimeGen是一个用于时序波形编辑的CAD工具,它允许数字设计工程师快速有效地绘制数字时序图。TimeGen时序图可以很容易地导出到其他窗口程序,如microsoftword,用于编写设计规范。可直接从官网下载TimeGEN软件:TimeGen Pro…...
1:25万基础电子地图(云南版)
我们在《50幅1:25万基础电子地图(四川版)》一文中,为你分享过四川的50幅基础电子地图。 现在我们再为你分享云南的1:25万基础电子地图,你可以在文末查看该数据的领取方法。 基础电子地图云南版 下载后可以看到该数据…...
springboot宠物领养系统-计算机毕业设计源码07863
摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…...
牛客热题:最长回文子串
📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:最长回文子串题目链接方法一&am…...
如何访问寄存器
标题 方式一:对地址进行宏定义方式二:用结构体封装寄存器 访问寄存器是CPU执行程序的基础,每种CPU架构都有其特定的寄存器集合和访问方式。 方式一:对地址进行宏定义 #define GPIOA_BASE ((unsigned int)0x48000000) #define GPI…...
苍穹外卖笔记-18-修改密码、bug记录
文章目录 1 修改密码1.1 需求分析和设计1.2 代码实现1.2.1 admin/EmployeeController1.2.2 EmployeeService1.2.3 EmployeeServiceImpl 1.3 功能测试 2 bug记录 1 修改密码 完结的时候发现还有一个接口未实现。这里补充 1.1 需求分析和设计 产品原型: 业务规则&am…...
拼多多网站在那里做/百度一下1688
比以前就多了一点: 创建多个缓冲区,传入到顶点着色器中; attribute float a_PointSize;//传入点的尺寸 gl_Position a_Position;//设置点的尺寸 用bufferData把数据给a_PointSize 如图: 具体代码如下: <!DOCTY…...
我的世界做皮肤壁纸网站/厦门百度关键词seo收费
转自: http://rfyiamcool.blog.51cto.com/1030776/1335700/ 简单的说就是,每个硬件设备(如:硬盘、网卡等)都需要和 CPU 有某种形式的通信以便 CPU 及时知道发生了什么事情,这样 CPU 可能就会放下手中的事情去处理应急…...
温州网站制作要多少钱/郑州seo优化外包
然后再配置监听,web.xml配置:12com.test.OnlineUserListenerlistener-class>3listener>一旦监听器发现调用了sessionDestoryed方法就会把其用户从在线人数中delete,在下面两种情况下会发生sessionDestoryed事件a.执行session.invalidat…...
福清做网站/搜索引擎优化的概念是什么
设计一个Windows应用程序,在该程序中首先构造中学生、大学生等派生类,当输入相关数据,单击不同的按钮(“小学生”“中学生”“大学生”)将分别创建不同的学生对象,并输入当前的学生总人数,该学生的姓名学生类型和平均成…...
教做粥的网站/企业邮箱怎么开通注册
http://edu.csdn.net/search?keywordsffmpeg&type0...
手机网站 后台/seo数据
AUTOSAR标准的安全通信为支持功能安全,AUTOSAR标准结合ISO 26262功能安全标准,在基础软件层从安全执行、安全通信以及安全内建测试三个方面做出了规范,并规范 AUTOSAR标准的安全通信 为支持功能安全,AUTOSAR标准结合ISO 26262功能…...