如何用IdFTP在开始下载之前知道文件的大小?

fangrk 2003-09-26 03:12:52
我使用了IdAntiFreeze

FangFTP是我自己设定的名字空间:
namespace FangFTP
{
int FileTotalCount;
int FileReceivedCount;
}


void __fastcall TForm1::IdFTP1WorkBegin(TObject *Sender,
TWorkMode AWorkMode, const int AWorkCountMax)
{
FangFTP::FileTotalCount=AWorkCountMax/1024;
FangFTP::FileReceivedCount=0;
// ShowMessage(AWorkCountMax);每次都是0!
}
//---------------------------------------------------------------------------

void __fastcall TForm1::IdFTP1Work(TObject *Sender, TWorkMode AWorkMode,
const int AWorkCount)
{
FangFTP::FileReceivedCount=AWorkCount/1024;
StatusBar1->Panels->Items[1]->Text=AnsiString("已下载:")+IntToStr(FangFTP::FileReceivedCount)
+AnsiString("/")+IntToStr(FangFTP::FileTotalCount);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::IdFTP1WorkEnd(TObject *Sender, TWorkMode AWorkMode)
{
FangFTP::FileTotalCount=0;
FangFTP::FileReceivedCount=0;
// StatusBar1->Panels->Items[1]->Text="";
}

每次IdFTP1WorkBegin中间的AWorkCountMax都是0
如何解决?即如何在开始下载之前知道文件的大小。
...全文
43 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shally5 2003-09-27
  • 打赏
  • 举报
回复
AWorkCountMax是开始下载或上传时文件的长度记数。
void __fastcall TForm1::IdFTP1WorkBegin(TObject *Sender,
TWorkMode AWorkMode, const int AWorkCountMax)
{
STime = Now();
if (AWorkCountMax > 0)
{
ProgressBar1->Max = AWorkCountMax;

}
else
{
ProgressBar1->Max = BytesToTransfer;
}
AverageSpeed = 0;
FileLenCount=AWorkCountMax/1024;
}
fangrk 2003-09-27
  • 打赏
  • 举报
回复
那么IdFTP1WorkBegin有什么所用呢?
invalid 2003-09-26
  • 打赏
  • 举报
回复
iSize = AFtp->Size("image.jpg");

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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