社区
网络编程
帖子详情
请教:关于FTP下载进度的问题
ribut9225
2006-12-22 06:31:26
偶写了一个FTP客户端程序
想要在程序里实现进度条显示FTP文件下载的进度
请各位指点一下,应如何做?
偶是通过CInternetSession和CFtpConnection来连接FTP服务器的
不知道如何下载及显示下载进度
请各位出手指点一下
谢谢先
...全文
393
8
打赏
收藏
请教:关于FTP下载进度的问题
偶写了一个FTP客户端程序 想要在程序里实现进度条显示FTP文件下载的进度 请各位指点一下,应如何做? 偶是通过CInternetSession和CFtpConnection来连接FTP服务器的 不知道如何下载及显示下载进度 请各位出手指点一下 谢谢先
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ribut9225
2007-01-01
打赏
举报
回复
谢谢各位
搞定
结贴
oyljerry
2006-12-27
打赏
举报
回复
根据总的大小,自己计算,大致精确就可以了
ppzine
2006-12-27
打赏
举报
回复
可以这样做,首先得到文件大小,把你每次下载的数据长度都加起来,做一个定时器每隔一段时间就与文件长计算一下除法,一般10秒一次就行,我看bt,emule都是这样算的
ribut9225
2006-12-27
打赏
举报
回复
顶起来
oicqhf
2006-12-27
打赏
举报
回复
用CFtpConnection类里面的OpenFile和CInternetFile类里面的Write可以自己控制每次写入的大小,从而设置进度条,这种方法绝对可以,下面是部分代码,如果有不明白的可以邮箱问我oicqhf@tom.com
CInternetSession* pSession;
CFtpConnection* pConnect;
CInternetFile* pFile;
pSession = new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);
pConnect = NULL;
pFile = NULL;
try{
pConnect = pSession->GetFtpConnection(m_szFTPServer,m_szFTPUser,m_szFTPPass,m_nPort);
}catch (CInternetException* e) {
m_nErrorCode = e->m_dwError;
m_szError.Format("Connect Ftp server failed,the error code is:%d",m_nErrorCode);
AfxMessageBox(m_szError);
e->Delete();
pConnect = NULL;
return;
}
CFile file;
if (!file.Open(m_szLocalFile,CFile::modeRead))
{
m_szError.Format("Open % file failed!",m_szLocalFile);
AfxMessageBox(m_szError);
bSuccess = FALSE;
break;
}
DWORD nLength = file.GetLength();
BYTE* pBuf = new BYTE[nLength + 1];
file.ReadHuge(pBuf,nLength);
file.Close();
pBuf[nLength] = 0;
int nPart = 0;
nPart = nLength/1024 + 1;
m_Progress.SetRange(0,nPart);
m_Progress.SetPos(-1);
UpdateData(FALSE);
pFile = pConnect->OpenFile(m_szServerFile,GENERIC_WRITE);
for (int j = 0;j < nPart;j++)
{
BYTE* pTemp = pBuf + j*1024;
try{
pFile->Write(pTemp,1024);
}catch (CInternetException* e) {
m_nErrorCode = e->m_dwError;
m_szError.Format("Upload %s file failed!The error code is %d!",m_szLocalFile,m_nErrorCode);
AfxMessageBox(m_szError);
bSuccess = FALSE;
break;
}
m_Progress.SetPos(j+1);
m_nPos += 1;
m_allProgress.SetPos(m_nPos);
}
pFile->Close();
delete pBuf;
ribut9225
2006-12-26
打赏
举报
回复
请教一个算法
偶下载的文件有的只有几K,有的是500M
如果让进度条按下载进度操作??
能不能指点一下算法?
谢谢先
LiChenYue
2006-12-24
打赏
举报
回复
只要知道了自己下载了多少,不就好办了吗?没做过,不过觉得实现起来不难。
InTheLongRun
2006-12-22
打赏
举报
回复
RTRTRTR
linux
ftp
显示
进度
条,在Python中显示
FTP
下载
进度
(ProgressBar)
博主求助:使用Python通过
FTP
下载
文件时,尝试集成ProgressBar以显示
下载
进度
,但未见预期效果。代码中包含错误处理和文件操作。请帮忙诊断
问题
并提供解决方案。
ftp
图片上传
下载
带
进度
条
这篇博文主要介绍了在WinForm应用中如何使用
FTP
协议进行图片的上传和
下载
,并结合
进度
条展示传输状态。作者指出,尽管设置ContentLength属性在
FTP
服务器上有用,但在客户端中
Ftp
WebRequest会忽略此属性,导致在实现
进度
条时遇到挑战。最终,作者通过多次请求解决了这个
问题
,实现了上传和
下载
的
进度
反馈。
从
FTP
下载
文件带
进度
条
本文介绍了如何使用C#编程语言通过
FTP
协议获取远程服务器上文件的大小,并实现带有
进度
条显示的文件
下载
功能。文章提供了详细的代码示例,包括异常处理和
进度
更新逻辑。
python
ftp
上传/
下载
文件,带
进度
条显示
本文介绍如何使用Python的
ftp
lib和tkinter库实现
FTP
文件上传,并实时显示上传
进度
。通过创建
进度
条UI,用户可以直观地了解文件上传状态。
C#写的带有上传
下载
进度
的
FTP
代码
这个C#类库提供了一种方法来处理
FTP
文件上传和
下载
,包括事件处理来跟踪
下载
和上传
进度
。它支持在传输过程中取消操作,并通过事件通知应用程序当前的传输状态。
网络编程
18,356
社区成员
64,164
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章