Форум: "Сети";
Текущий архив: 2008.08.17;
Скачать: [xml.tar.bz2];
ВнизЗагрузка удаленного файла Найти похожие ветки
← →
GamerZone (2007-10-11 16:42) [0]Для загрузки файла с http использую функцию:
/////////////////////////////////////////////////////////////////////////
function GetInetFile (const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0);
try
hURL := InternetOpenURL(hSession,PChar(fileURL),nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer,SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen);
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL);
end;
finally
InternetCloseHandle(hSession);
end;
end;
/////////////////////////////////////////////////////////////////////////
Но у нее есть недостаток:
если файла нет, функция все равно возвращает True, т.к. сервер при отсутствии выдает сообщение об ошибке.
Подскажите, как от этого избавиться.
← →
Сергей М. © (2007-10-12 08:59) [1]
> как от этого избавиться
Для начала осознать, что
1. InternetReadFile и InternetReadFile - это функции.
2. Вызовы WinAPI-функций при корректных передаваемых им параметрах не приводят в исключительным ситуациям.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2008.08.17;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.054 c