Chcę sprawdzić, czy dany plik (dokładny adres do niego) istnieje w INTERNECIE (nie na dysku, czy sieci lokalnej).
Przykładowo chcę sprawdzić czy dany plik istnieje: http://snapshot.opera.com/windows/o100s_1703m.exe .
FileExists nie działa dla zasobów globalnych, więc czym mogę to zrobić?
0
0
wysłać HEAD do serwera o plik?
0
A mógłbyś zaprezentować jak dokładnie mam to zrobić?
0
Nie wiem czy ta funkcja się przyda, ale sprawdza ona czy podany Url jest poprawny:
// do uses dodaj moduł WinInet;
function CheckUrl(Url: string): boolean;
var
hSession, hfile : hInternet;
dwindex, dwcodelen : DWORD;
dwcode : array[1..20] of Char;
Res : PChar;
begin
if (Pos('http://', url) = 0) then
Url := 'http://' + Url;
Result := false;
hSession := InternetOpen(Opera_UserAgent,
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if (Assigned(hsession)) then
begin
hfile := InternetOpenUrl(hSession, PChar(Url), nil, 0,
INTERNET_FLAG_RELOAD, 0);
dwIndex := 0;
dwCodeLen := 10;
HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex);
Res := PChar(@dwcode);
Result := (Res = '200') or (Res = '302');
if (Assigned(hfile)) then InternetCloseHandle(hfile);
InternetCloseHandle(hsession);
end;
end;
</delphi?