gpt4 book ai didi

Delphi 文件下载器组件

转载 作者:行者123 更新时间:2023-12-03 15:15:31 24 4
gpt4 key购买 nike

我需要一个 Delphi 的文件下载器组件。你可以帮我吗?

最佳答案

使用高级 URLDownloadToFile功能:

uses UrlMon;

...

URLDownloadToFile(nil, 'http://www.rejbrand.se/', 'C:\Users\Andreas Rejbrand\Desktop\index.html', 0, nil);

或者,您可以使用 WinInet 函数轻松编写自己的下载器函数,例如

uses WinInet;

...

hInet := InternetOpen(PChar(UserAgent), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
hURL := InternetOpenUrl(hInet, PChar('http://' + Server + Resource), nil, 0, 0, 0);
try
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);

...

这里有很多示例代码。使用上面的搜索框。

更新

我写了一个小样本。例如,您可能希望在自己的线程中执行此代码,并让它每隔 10 kB 左右执行一次 ping 操作,以便为用户提供一些进度条。

function DownloadFile(const UserAgent, URL, FileName: string): boolean;
const
BUF_SIZE = 4096;
var
hInet, hURL: HINTERNET;
f: file;
buf: PByte;
amtc: cardinal;
amti: integer;
begin
result := false;
hInet := InternetOpen(PChar(UserAgent), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
hURL := InternetOpenUrl(hInet, PChar(URL), nil, 0, 0, 0);
try
GetMem(buf, BUF_SIZE);
try
FileMode := fmOpenWrite;
AssignFile(f, FileName);
try
Rewrite(f, 1);
repeat
InternetReadFile(hURL, buf, BUF_SIZE, amtc);
BlockWrite(f, buf^, amtc, amti);
until amtc = 0;
result := true;
finally
CloseFile(f);
end;
finally
FreeMem(buf);
end;
finally
InternetCloseHandle(hURL);
end;
finally
InternetCloseHandle(hInet);
end;
end;

关于Delphi 文件下载器组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4521535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com