我在程序中用到TidFTP从服务器上下载文件, 但当文件很大时(18.2M), 却有点问题,不知怎么解决,请高人指点.语句如下:
procedure TfmMain.BtnDownloadFileClick(Sender: TObject);
......
try
ClientFtp.ChangeDir(strSrcDir);
nSize := ClientFtp.Size(strFileName); if nSize >= 0 then begin
DeleteFile(m_strLocalName); ProgBarDown.Min := 0;
ProgBarDown.Max := nSize;
ProgBarDown.Position:=0;
ClientFtp.Get(strFileName, m_strLocalName, true);
ShowMessage('Download ok!');
end;
except
on E: Exception do begin
ClientFtp.Abort(); // 放弃下载
ShowInfo(E.Message);
end;
end;
......
end;procedure TfmMain.ClientFtpWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
ShowInfo('Ftp work end');
ProgBarDown.Position := 0;
end;运行结果是: 能够显示'Ftp work end', 但不能显示'Download ok!', 请问怎么解决?
procedure TfmMain.BtnDownloadFileClick(Sender: TObject);
......
try
ClientFtp.ChangeDir(strSrcDir);
nSize := ClientFtp.Size(strFileName); if nSize >= 0 then begin
DeleteFile(m_strLocalName); ProgBarDown.Min := 0;
ProgBarDown.Max := nSize;
ProgBarDown.Position:=0;
ClientFtp.Get(strFileName, m_strLocalName, true);
ShowMessage('Download ok!');
end;
except
on E: Exception do begin
ClientFtp.Abort(); // 放弃下载
ShowInfo(E.Message);
end;
end;
......
end;procedure TfmMain.ClientFtpWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
ShowInfo('Ftp work end');
ProgBarDown.Position := 0;
end;运行结果是: 能够显示'Ftp work end', 但不能显示'Download ok!', 请问怎么解决?
TIdFTP 没有玩的太多,不敢多言。
不过我下载大文件的时候都是过百兆的,也没有你这样的问题啊。