|
Ftp server에서 파일을 다운받는 프로그램을 만드는 중입니다.
먼저 다운받을 파일의 크기를 얻은 후 다운받는 루틴입니다.
다운 진행율을 표시하기 위해서 메서드는 ReceiveAsync()를 썼구요.
그런데 파일 크기를 얻은 후 막바로 파일을 받으려니까 받아지질 않는군요.
그래서 그 중간에 ShowMessage()로 잠시 시간을 벌려 놓으니까 이번엔 제대루 받아지고...
왜 그런지 이유와 해결 방법을 부탁드립니다.
아래는 소스입니다.
void TForm1::FileDownload(AnsiString FileName)
{
FtpClient1->HostName = HostName
FtpClient1->HostDirName = HostDir;
FtpClient1->HostFileName = FileName;
FtpClient1->FileSize();
// ShowMessage("download 1");
FileSize = FtpClient1->SizeResult;
FtpClient1->LocalFileName = FileName;
FtpClient1->ReceiveAsync();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FtpClient1Progress(TObject *Sender,
int Count, bool &Abort)
{
StatusBarMain->Panels->Items[0]->Text = AnsiString((int)(Count*100. / FileSize)) + " %";
StatusBarMain->Repaint();
}
//---------------------------------------------------------------------------
|