关于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%,,快晕死掉了,,,,


要怎么解决啊????为啥就不出来了呢????
...全文
108 点赞 收藏 4
写回复
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;
回复 点赞
发动态
发帖子
网络及通讯开发
创建于2007-08-02

902

社区成员

8891

社区内容

C++ Builder 网络及通讯开发
社区公告
暂无公告