delphi程序中下载文件的问题

 

使用Delphi编写下载文件程序时,一开始还觉得很顺利,使用URLDownload很方便

function DownloadFile1(SourceFile, DestFile: string): Boolean;
begin
  try
    CoInitialize(nil);              //这个是发现问题后加上去的
    Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
     CoUninitialize(); 
  except
    Result := False;
  end;
end;

但是最后却发现问题了——网页更新了,但是下载回来的页面怎么试都没有更新,查看IIS日志, 发现客户端根本向服务器发出请求,甚至把IE缓存删除了都不更新,晕倒!

最后使用idhttp解决这个问题(uses idHttp)

function  DownloadFile(SourceFile, DestFile: string): Boolean;
var
  DownLoadFile:TFileStream;
  idHttp1:TidHttp;
  tmp:boolean;
begin
  idhttp1:=TidHttp.Create(nil);
  tmp:=false;
  DownLoadFile:=TFileStream.Create(DestFile,fmCreate);
 try
    IdHTTP1.Get(SourceFile,DownLoadFile);
    tmp:=DownLoadFile.Size>0;
 except
    tmp:=false;
 end;


  IdHttp1.Free;
  DownLoadFile.Free;
  if not tmp then deletefile(DestFile);          //下载的文件不存在时删除该空白文件
  result:=tmp;

end;

 

idhttp的异常只能捕获,不能使用finally消除


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值