关于TNMFTP控件的DownloadRestore方法的问题????????????????????????????????????????????????????????

taoyi 2005-07-01 03:12:07
m_pFtp->DoCommand("TYPE I");
m_pFtp->DoCommand("REST " + IntToStr(nSize));
m_pFtp->DownloadRestore(remoteFile, localFile); <======== 这里不出来了,怎么也不返回???
m_pFtp->DoCommand("QUIT");

以上代码实现FTP下载时的续传,,,可在调试时却发现执行到DownloadRestore方法时怎么也出不来了,,怎么也执行不到m_pFtp->DoCommand("QUIT");这句,,CPU占用一直100%,,快晕死掉了,,,,


要怎么解决啊????为啥就不出来了呢????
...全文
167 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
taoyi 2005-07-01
  • 打赏
  • 举报
回复
老大们,,,,行行好啊~~~~~~
download方法好象也存在这个问题,,,,,,,,,,,咋办呢???
taoyi 2005-07-01
  • 打赏
  • 举报
回复
IdFTP没用过,,我看了帮助,居然没发现相关事件啊,,,怎么实现显示下载的百分比这些啊?
constantine 2005-07-01
  • 打赏
  • 举报
回复
IdFTP1.Size(aFile);得到ftp上面的文件大小,如果跟本地大小一样就时传完了,可以控制直接断开
constantine 2005-07-01
  • 打赏
  • 举报
回复
没有用过nmftp,你参考idny的控件,delphi的代码,其实就时get的时候指定参数就行了,true为许传,false为覆盖

procedure TForm1.FtpDownLoad(aURL, aFile: string; bResume: Boolean);
var
tStream: TFileStream;
sName, sPass, sHost, sPort, sDir: string;
begin //ftp方式下载
if FileExists(aFile) then //建立文件流
tStream := TFileStream.Create(aFile, fmOpenWrite) else
tStream := TFileStream.Create(aFile, fmCreate);

GetFTPParams(aURL, sName, sPass, sHost, sPort, sDir);
with IdFTP1 do
try
if Connected then Disconnect; //重新连接
Username := sName;
Password := sPass;
Host := sHost;
Port := StrToInt(sPort);
Connect;
except
exit;
end;

IdFTP1.ChangeDir(sDir); //改变目录
BytesToTransfer := IdFTP1.Size(aFile);
try
if bResume then //续传
begin
tStream.Position := tStream.Size;
IdFTP1.Get(aFile, tStream, True);
end else
begin
IdFTP1.Get(aFile, tStream, False);
end;
finally
tStream.Free;
end;
end;

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧