使用TIdHttp控件给你一个断点续传例子,下载完就保存在AFileName文件里了。 简单的获取,只用Get方法就可以了,直接返回字符串,该字串包含Html代码。procedure DownloadFile(AURL,AFileName:string;bResume:boolean); var tStream:TFileStream; begin if FileExists(AFileName) then tStream:=TFileStream.Create(AFileName,fmOpenReadWrite) else tStream:=TFileStream.Create(AFileName,fmCreate);
if bResume then begin HttpFile.Request.ContentRangeStart := tStream.Size - 1; tStream.Position := tStream.Size - 1; //移动到最后继续下载 HttpFile.Head(aURL); HttpFile.Request.ContentRangeEnd := HttpFile.Response.ContentLength; end else begin HttpFile.Request.ContentRangeStart := 0; end;
ShellExecute( HWND hwnd, // handle to parent window LPCTSTR lpOperation, // pointer to string that specifies operation to perform LPCTSTR lpFile, // pointer to filename or folder name string LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters LPCTSTR lpDirectory, // pointer to string that specifies default directory INT nShowCmd // whether file is shown when opened );
简单的获取,只用Get方法就可以了,直接返回字符串,该字串包含Html代码。procedure DownloadFile(AURL,AFileName:string;bResume:boolean);
var
tStream:TFileStream;
begin
if FileExists(AFileName) then
tStream:=TFileStream.Create(AFileName,fmOpenReadWrite)
else
tStream:=TFileStream.Create(AFileName,fmCreate);
if bResume then
begin
HttpFile.Request.ContentRangeStart := tStream.Size - 1;
tStream.Position := tStream.Size - 1; //移动到最后继续下载
HttpFile.Head(aURL);
HttpFile.Request.ContentRangeEnd := HttpFile.Response.ContentLength;
end
else
begin
HttpFile.Request.ContentRangeStart := 0;
end;
try
HTTPFile.Get(AURL,tStream);
finally
tStream.Free;
end;
end;
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);