本例程提供了 Delphi 下载文件的两种方法:直接下载和使用进度条更新下载进度。1. 直接下载:指定 URL 和文件名,使用 IdHTTP 客户端下载文件。2. 使用进度条下载:除了直接下载的步骤,还获取文件大小并设置进度条最大值,并使用事件处理程序更新下载进度。

Delphi 下载文件代码
直接下载文件
procedure TForm1.btnDownloadClick(Sender: TObject);
var
URL: String;
FileName: String;
Client: TIdHTTP;
begin
// 获取要下载的文件的 URL
URL := 'http://example.com/file.zip';
// 指定要保存文件的名称
FileName := 'C:\Downloads\file.zip';
// 创建 IdHTTP 客户端
Client := TIdHTTP.Create;
try
// 下载文件
Client.Get(URL, FileName);
// 下载成功
ShowMessage('文件已成功下载至 ' + FileName);
except
// 下载失败
ShowMessage('下载文件时出错:' + Client.IOHandler.LastError.Message);
end;
// 清除
Client.Free;
end;使用进度条下载文件
procedure TForm1.btnDownloadClick(Sender: TObject);
var
URL: String;
FileName: String;
Client: TIdHTTP;
Bytes: TBytes;
TotalBytes: Int64;
begin
// 获取要下载的文件的 URL
URL := 'http://example.com/file.zip';
// 指定要保存文件的名称
FileName := 'C:\Downloads\file.zip';
// 创建 IdHTTP 客户端
Client := TIdHTTP.Create;
try
// 获取文件大小
TotalBytes := Client.Head(URL).ContentLength;
// 设置进度条最大值
ProgressBar1.Max := TotalBytes;
// 下载文件
Client.Get(URL, FileName, nil,
procedure(Sender: TIdHTTP; const BytesRead: Int64)
begin
// 更新进度条
ProgressBar1.Position := BytesRead;
end);
// 下载成功
ShowMessage('文件已成功下载至 ' + FileName);
except
// 下载失败
ShowMessage('下载文件时出错:' + Client.IOHandler.LastError.Message);
end;
// 清除
Client.Free;
end;










