• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#文件断点续传实现方法

C#文件断点续传实现方法

作者:我心依旧 字体:[增加 减小] 来源:互联网 时间:2017-05-28

我心依旧 通过本文主要向大家介绍了c站,c语言,欲情 c max,奔驰c200,85度c等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

/// <summary>
/// 下载局域网文件
/// </summary>
/// <param name="path">文件路径,如:\\192.168.10.1\app\app\123.zip</param>
/// <param name="username">计算机名称</param>
/// <param name="password">计算机密码</param>
static void RequestWindowsShared(string path, string username, string password)
{
 //文件总大小
 int allBytesCount = 0;
 //每次传输大小
 int byteTemp = 1024;
 //当前位置
 int bytePosition = 0;
 //剩下大小
 int remain = 0;
 System.Net.FileWebRequest request = null;
 System.Net.FileWebResponse response = null;
 System.IO.Stream stream = null;
 System.IO.FileStream fileStream = null;
 try
 {
  Uri uri = new Uri(path);
  request = (System.Net.FileWebRequest)System.Net.FileWebRequest.Create(uri);
  System.Net.ICredentials ic = new System.Net.NetworkCredential(username, password);
  request.Credentials = ic;
  response = (System.Net.FileWebResponse)request.GetResponse();
  stream = response.GetResponseStream();
  byte[] bytes = new byte[stream.Length];
  stream.Read(bytes, 0, bytes.Length);
  string filename = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\" + System.IO.Path.GetFileName(path);
  fileStream = new FileStream(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 (Exception ex)
 {
  Console.WriteLine(ex.Message);
 }
 finally
 {
  fileStream.Close();
  fileStream.Dispose();
  stream.Close();
  stream.Dispose();
 }
}
/// <summary>
/// 上传文件
/// </summary>
/// <param name="path">共享目录路径+文件名称</param>
/// <param name="local">本地路径</param>
/// <param name="username">用户名</param>
/// <param name="password">密码</param>
static void ResponseWindowsShared(string path, string local, string username, string password)
{
 //文件总大小
 int allBytesCount = 0;
 //每次传输大小
 int byteTemp = 1024;
 //当前位置
 int bytePosition = 0;
 //剩下大小
 int remain = 0;
 System.Net.FileWebRequest request = null;
 System.IO.Stream stream = null;
 try
 {
  //时间戳 
  string strBoundary = "----------" + DateTime.Now.Ticks.ToString("x");
  Uri uri = new Uri(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.ICredentials ic = new System.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 (Exception ex)
 {
  Console.WriteLine(ex.Message);
 }
 finally
 {
  stream.Close();
  stream.Dispose();
 }
}
</div>

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C# 检索不区分大小写并高亮显示实例详解
  • C#实现Base64处理的加密解密,编码解码示例
  • C# SqlHelper应用开发学习
  • C#多线程经典示例(吃苹果)
  • C#使用Windows Service的简单教程(创建、安装、卸载、调试)
  • C# 6.0 的知识梳理
  • C#向PPT文档插入图片以及导出图片的实例
  • C#使用Jquery zTree实现树状结构显示 异步数据加载
  • C#清理非托管对象实例分析
  • C#双缓冲技术实例详解

相关文章

  • 2017-05-28C#基于OLEDB获取Excel文件表结构信息的方法
  • 2017-05-28C#中计时器的简单实现方法示例
  • 2017-05-28C#微信开发之自定义菜单管理
  • 2017-05-28C#判断三角形的类型
  • 2017-05-28深入解析:打造自动消失的对话框
  • 2017-05-28C#中结构体和字节数组转换实现
  • 2017-05-28c#实现一元二次方程求解器示例分享
  • 2017-05-28c#一个定时重启的小程序实现代码第1/2页
  • 2017-05-28c#和sql如何获得时间间隔的方法
  • 2017-05-28浅谈C#设计模式之代理模式

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#中动态数组用法实例
    • C# 设计模式系列教程-观察者模式
    • C#常用GDI+文字操作汇总
    • C#对二进制数据进行base64编码的方法
    • C#文件断点续传实现方法
    • 浅谈C#网络编程详解篇
    • C#中使用1.7版本驱动操作MongoDB简单例子
    • C#实现用于操作wav声音文件的类实例
    • C#特性-对象集合初始化器介绍
    • C#中DataBindings用法实例分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有