UrlDownloadToFile在Delphi XE2中无效?

3

我正在尝试使用Delphi XE2从互联网下载文件,但是什么也没有发生。

这是我的代码:

uses URLMon;

...

procedure TForm1.Button1Click(Sender: TObject);
Const
  SourceFile = 'http://www.google.com/intl/de/images/home_title.gif';
  DestFile = 'c:\download\home_title.gif';
begin
  UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil);
end;

我的问题是:当我点击按钮时,程序不会下载文件。我尝试下载到另一个目录,也尝试下载其他文件,但都没有成功。我无法让它正常工作。

我做错了什么?

请帮助我!

1个回答

3
你的代码没问题。很可能问题是本地的,可能与你的网络连接有关。或者可能目录 'c:\download' 不存在。
为了调查本地问题,你需要记录函数 UrlDownloadToFile 返回的值。它是一个 HRESULT,并且 S_OK 表示成功。其他值表示失败。一旦你知道错误代码是什么,就应该能够追踪到你的问题所在。
话虽如此,UrlDownloadToFile 似乎无法返回有意义的错误代码。例如,如果将 DestFile 设置为具有不存在文件夹的路径,那么函数仍然返回 S_OK

1
文档中指出:"即使无法创建文件并且下载被取消,URLDownloadToFile 也会返回 S_OK。如果 szFileName 参数包含文件路径,请确保在调用 URLDownloadToFile 之前目标目录存在。为了对下载及其进度有最佳控制,建议使用 IBindStatusCallback 接口。" - Remy Lebeau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接