using System;
using System.IO;
using System.Net;
namespace ConsoleApp1
{
class Program
{
private static void DownloadFile(Action<long,long> progressAction
,Action<Exception> exceptionAction,Action okAction = null)
{
try
{
var request = WebRequest
.CreateHttp("http://mytianh5.oss-cn-beijing.aliyuncs.com/website/video/zaojiaoji.mp4");
if (File.Exists("zaojiaoji.mp4"))
{
using var fileStream = File.OpenRead("zaojiaoji.mp4");
request.Headers[HttpRequestHeader.Range]
= $"bytes={fileStream.Length}-";
}
if (request.GetResponse() is HttpWebResponse response
&& (HttpStatusCode.OK == response.StatusCode
|| HttpStatusCode.PartialContent == response.StatusCode))
{
using (response)
{
using var responseStream = response.GetResponseStream();
using var fileStream = File.Open("zaojiaoji.mp4"
, HttpStatusCode.PartialContent == response.StatusCode ? FileMode.Append
: File.Exists("zaojiaoji.mp4") ? FileMode.Truncate : FileMode.Create);
var count = 0L;
if (HttpStatusCode.PartialContent == response.StatusCode)
{
count += fileStream.Length;
}
var max = count + response.ContentLength;
var buffer = new byte[1024 * 2];
var readBytes = 0;
while (responseStream != null
&& (readBytes = responseStream.Read(buffer, 0, buffer.Length)) > 0)
{
fileStream.Write(buffer, 0, readBytes);
count += readBytes;
progressAction?.Invoke(count
,max);
}
okAction?.Invoke();
}
}
else
{
exceptionAction?.Invoke(new Exception("error"));
}
}
catch(Exception e)
{
exceptionAction?.Invoke(e);
}
}
private static void Main(string[] args)
{
DownloadFile(delegate(long l, long l1)
{
Console.Write("=");
},Console.WriteLine);
}
}
}
C#下载文件,断点下载Demo
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 在项目里遇到附件的下载和本地查看功能,附件有可能是word pdf 图片 Excel表格 甚至是ppt 有点变态吧...
- 最近项目中遇到了大文件下载,先用了AFNetwork去实现了一下,果然简单实用,就像官方说的那样,明明你用几行代码...
- iOS开发中经常会用到文件的下载与上传功能,今天咱们来分享一下文件下载的思路。文件上传下篇再说。 文件下载分为:小...
- iOS开发中经常会用到文件的下载与上传功能,今天咱们来分享一下文件下载的思路。文件上传下篇再说。 文件下载分为小文...