Csharp/C#教程:C#文件断点续传实现方法分享

本文实例讲述了C#文件断点续传实现方法。分享给大家供大家参考。具体实现方法如下:

///<summary> ///下载局域网文件 ///</summary> ///<paramname="path">文件路径,如:\192.168.10.1appapp123.zip</param> ///<paramname="username">计算机名称</param> ///<paramname="password">计算机密码</param> staticvoidRequestWindowsShared(stringpath,stringusername,stringpassword) { //文件总大小 intallBytesCount=0; //每次传输大小 intbyteTemp=1024; //当前位置 intbytePosition=0; //剩下大小 intremain=0; System.Net.FileWebRequestrequest=null; System.Net.FileWebResponseresponse=null; System.IO.Streamstream=null; System.IO.FileStreamfileStream=null; try { Uriuri=newUri(path); request=(System.Net.FileWebRequest)System.Net.FileWebRequest.Create(uri); System.Net.ICredentialsic=newSystem.Net.NetworkCredential(username,password); request.Credentials=ic; response=(System.Net.FileWebResponse)request.GetResponse(); stream=response.GetResponseStream(); byte[]bytes=newbyte[stream.Length]; stream.Read(bytes,0,bytes.Length); stringfilename=System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop)+"\"+System.IO.Path.GetFileName(path); fileStream=newFileStream(filename,System.IO.FileMode.Create,System.IO.FileAccess.Write,System.IO.FileShare.ReadWrite); allBytesCount=bytes.Length; remain=allBytesCount; while(remain>0) { fileStream.Write(bytes,bytePosition,byteTemp); remain=remain-byteTemp; bytePosition=bytePosition+byteTemp; fileStream.Flush(); if(remain<byteTemp) byteTemp=remain; } Console.WriteLine("下载成功!"); } catch(Exceptionex) { Console.WriteLine(ex.Message); } finally { fileStream.Close(); fileStream.Dispose(); stream.Close(); stream.Dispose(); } } ///<summary> ///上传文件 ///</summary> ///<paramname="path">共享目录路径+文件名称</param> ///<paramname="local">本地路径</param> ///<paramname="username">用户名</param> ///<paramname="password">密码</param> staticvoidResponseWindowsShared(stringpath,stringlocal,stringusername,stringpassword) { //文件总大小 intallBytesCount=0; //每次传输大小 intbyteTemp=1024; //当前位置 intbytePosition=0; //剩下大小 intremain=0; System.Net.FileWebRequestrequest=null; System.IO.Streamstream=null; try { //时间戳 stringstrBoundary="----------"+DateTime.Now.Ticks.ToString("x"); Uriuri=newUri(path); byte[]bytes=System.IO.File.ReadAllBytes(local); request=(System.Net.FileWebRequest)System.Net.FileWebRequest.Create(uri); request.Method="POST"; //设置获得响应的超时时间(300秒) request.Timeout=300000; request.ContentType="multipart/form-data;boundary="+strBoundary; request.ContentLength=bytes.Length; System.Net.ICredentialsic=newSystem.Net.NetworkCredential(username,password); request.Credentials=ic; stream=request.GetRequestStream(); allBytesCount=bytes.Length; remain=allBytesCount; while(remain>0) { stream.Write(bytes,bytePosition,byteTemp); remain=remain-byteTemp; bytePosition=bytePosition+byteTemp; stream.Flush(); if(remain<byteTemp) byteTemp=remain; } Console.WriteLine("上传成功!"); } catch(Exceptionex) { Console.WriteLine(ex.Message); } finally { stream.Close(); stream.Dispose(); } }

希望本文所述对大家的C#程序设计有所帮助。

您可能感兴趣的文章:C#程序提示“正由另一进程使用,因此该进程无法访问该文件”的解决办法C#获取进程或线程相关信息的方法C#实现进程管理的启动和停止实例C#进程监控方法实例分析C#实现强制关闭当前程序进程C#关闭指定免费精选名字大全进程的方法C#启动进程的几种常用方法C#遍历系统进程的方法C#实现多线程写入同一个文件的方法C#实现多线程下载文件的方法C#实现读取被进程占用的文件实现方法

标签: 断点 断点续传 方法

使用Libmicrohttpd搭建内嵌(本地)服务器的方法

详谈c++跨平台编码的问题

上述就是C#学习教程:C#文件断点续传实现方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/906752.html

(0)
上一篇 2021年10月24日
下一篇 2021年10月24日

精彩推荐