社区
C#
帖子详情
C#做下载文件,多个下载的问题
MrYoung
2010-03-11 06:30:16
目前需要写一个小程序 实现的功能就是定时去指定的URL下载文件,这下载的不只一个文件 问题就是如何让程序多个下载同时多线程执行或如何来下载完一个文件后继续下载下一个文件,C/S的程序,要有进度条显示,大家能否给个DEMO或说下思路,我知道用线程,现在思路比较混乱
...全文
442
6
打赏
收藏
C#做下载文件,多个下载的问题
目前需要写一个小程序 实现的功能就是定时去指定的URL下载文件,这下载的不只一个文件 问题就是如何让程序多个下载同时多线程执行或如何来下载完一个文件后继续下载下一个文件,C/S的程序,要有进度条显示,大家能否给个DEMO或说下思路,我知道用线程,现在思路比较混乱
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shsoft888
2010-03-12
打赏
举报
回复
我这有例子,我自己做的,以经用在了公司的软件自动更新中。
程序思路就是用WCF的流操作。
代码发上来太长了,我说下思路,不明白加我QQ号:9096198
服务端我自定议了一个XML文件,里面配制着软件版本号所要更新的文件列表。
客户端也有个自定议的XML文件,里面记录着服务器URL及端口。
在客户端调用服务端的方法,获取到指定版本号要更新的文件列表。
获取到列表后,调用服务端方法DownloadFile下载指定的文件。
DownloadFile方法代码如下:
public MyFileInfo DownloadFile(DownloadFileRequest request)
{
try
{
FSDownloadConfig fsdc = new FSDownloadConfig();
string path = fsdc.FileDirectory(request.Ver);
FileInfo fi = new FileInfo(path + request.FileName);
FileStream fStream = File.OpenRead(path + request.FileName);
MyFileInfo result = new MyFileInfo(fStream, request.FileName, fi.Length);
return result;
}
catch (FileNotFoundException)
{
throw new FaultException(new FaultReason("服务器端没有找到要下载的文件!"));
}
}
客户端下载文件时,可以开启多个线程来调用这个方法,可以实现多线程同时下载。
客户端下载文件代码如下:
private void downFile()
{
ChannelFactory<IFileManager> _factory = new ChannelFactory<IFileManager>(_bind, new EndpointAddress(_baseAddress));
IFileManager manager = _factory.CreateChannel();
string remoteFileName = _filename;
MyFileInfo fileInfo = manager.DownloadFile(new DownloadFileRequest(_ver, remoteFileName));
FileStream fs = File.Create(fileInfo.FileName);
int bytesRead = 0;
long totalBytesRead = 0;
byte[] buffer = new byte[10000];
do
{
bytesRead = fileInfo.Stream.Read(buffer, 0, buffer.Length);
fs.Write(buffer, 0, bytesRead);
totalBytesRead += bytesRead;
double currentProgress = ((double)totalBytesRead) / fileInfo.FileSize;
if (DownloadProgressEvent != null)
{
DownloadEvent de = new DownloadEvent();
de.FileName = fileInfo.FileName;
de.Size = fileInfo.FileSize;
de.DwSize = totalBytesRead;
de.Progress = Convert.ToInt32(currentProgress * 100);
this.DownloadProgressEvent(this, de);
}
} while (bytesRead > 0);
fs.Close();
fs.Dispose();
((IClientChannel)manager).Close();
_factory.Close();
}
MrYoung
2010-03-12
打赏
举报
回复
恩 我自己解决了 也差不多就是这个样子 事件通知更新进度条 事件通知下载完成执行操作
MrYoung
2010-03-11
打赏
举报
回复
有没有CS的例子呢
wiki14
2010-03-11
打赏
举报
回复
http://topic.csdn.net/u/20100228/19/e7f49404-9e81-461a-8be1-e7040778a802.html?86719
MrYoung
2010-03-11
打赏
举报
回复
能否具体一点 最好给个DEMO
wuyq11
2010-03-11
打赏
举报
回复
ftpwebrequest下载文件
或webrequest
webClient下载实现进度条
C#
常用类库(100多个)
包含
文件
、网络、http、多线程、控件、office、IO、JSON、压缩
文件
、文本字符串、正则表达式、HTML、邮件、系统、数据库、加密解密等操作类
C#
循环
下载
多个
文件
(把多个
文件
压缩成一个
文件
可以一次性
下载
)
//删除已
下载
文件
Response.End(); } /// /// 压缩
文件
/// /// 要压缩的所有
文件
(完全路径) ///
文件
名称 /// 压缩后
文件
路径 /// 压缩级别 public void ZipFileMain(string[] ...
c#
多线程多
文件
批量
下载
c#
多线程多
文件
批量
下载
废话少说,先演示一张效果图 简单说下过程喽 开发过程中其实总是会碰到项目想应用
下载
文件
~ 看其他语言有很多封装好的类库可以使用~~ 作为小白的我并没有找到很多
c#
的...
C#
选择多个
文件
并读取多个
文件
数据
小博也是查阅了不少资料才获得的经验,下面小博以
C#
语言为例,附上一次读取多个
文件
的主要代码:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...
C#
多线程
下载
文件
功能实现,优化
文件
下载
不全
问题
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Threading; using System.Net;... /// 多线程
下载
文件
工具类 /// </summary
C#
110,568
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章