领悟旧事

Learned Helplessness
分类新闻>>生活领悟>>
XE10 C++Builder采用FTP下载文件到本地
来源:http://www.xx0594.com/
时间:2023-8-4
作者:  浏览人数:398
添加一个IdHTTP控件命名为IdHTTP1、一个进度条ProgressBar控件,命名为DownLoad_ProgressBar。
void __fastcall TTabbedForm::DownloadFile(AnsiString URL,AnsiString sFileName)
{
 TMemoryStream *ms=new TMemoryStream();
 bCanDownload = true;
 try{
  DownLoad_ProgressBar->Visible=true;
  try{
            Application->ProcessMessages();
   IdHTTP1->Get(URL,ms);//注意,下载的只能是图片格式的扩展名如png/jpg...而不能是其它的。
   ms->SaveToFile(sFileName);
  }
  catch(Exception &ee)//__except(...)
  {
   ToastLog(U"错误:"+ee.Message);//自定义函数。
   bCanDownload =false;DownLoad_ProgressBar->Visible=false;
  }
 }
 __finally{ //单个文件不能下载。
  if(!bCanDownload)ToastLog(U"下载错误,请检查设置!");
  else{
   ToastLog(U"下载完成!");
   //InstallAPK("/storage/emulated/0/057Lmq/App/signIn.apk");
  }
  delete ms;
 }
}
//---------------------------------------------------------------------------
//显示下载进度
void __fastcall TTabbedForm::IdHTTP1Work(TObject *ASender, TWorkMode AWorkMode, __int64 AWorkCount)

{
 Application->ProcessMessages();//注意,要处理消息,否则无法显示进度。
 DownLoad_ProgressBar->Value= AWorkCount;
}
//---------------------------------------------------------------------------
void __fastcall TTabbedForm::IdHTTP1WorkBegin(TObject *ASender, TWorkMode AWorkMode,
    __int64 AWorkCountMax)
{
 DownLoad_ProgressBar->Max =  AWorkCountMax;
}
//---------------------------------------------------------------------------

void __fastcall TTabbedForm::IdHTTP1WorkEnd(TObject *ASender, TWorkMode AWorkMode)

{
 DownLoad_ProgressBar->Visible=false;
 DownLoad_ProgressBar->Value=0;
 DownLoad_ProgressBar->Max = 10;
}
//---------------------------------------------------------------------------

 

关闭窗口
 访问量:519254
任何第三方若要引用、转摘本站信息,均需征得本站书面同意,否则视为侵权。本站信息为个人观点,若因引用本站信息而产生的任何情况,均与本站无关。Email:linmutou@163.com
闽ICP备14017840号-2