Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2014, 22:57   #1
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию Загрузка файла и Temporary Internet Files

Доброго времени суток. Столкнулся с такой задачей:

Скачиваю файл при помощи следующей функции на(WinInet)


Код:
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;
Но вот один нюанс, код постоянно обращается к "Temporary Internet Files", что достаточно сильно мешает.

Каким образом, можно скачать файл, не ссылаясь на временные файлы ?
-Jack- вне форума Ответить с цитированием
Старый 19.10.2014, 23:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А с чего ты решил что он обрашается к этому каталогу?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.10.2014, 23:22   #3
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Так скажем, "скачивает" не актуальные версии файлов ... В инете покопался, нашел рекомендации поставить флаг INTERNET_FLAG_RELOAD
-Jack- вне форума Ответить с цитированием
Старый 19.10.2014, 23:24   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А с чего ты решил что он обрашается к этому каталогу?
Вполне возможно, что функции библиотеки wininet юзают ядро IE. Почему бы и нет?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.10.2014, 23:27   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
"скачивает" не актуальные версии файлов
А-а-а. Из кэша берет. Это бывает. Да, тогда этот флаг заставит IE обратиться полюбас к интернету.
Цитата:
Вполне возможно, что функции библиотеки wininet юзают ядро IE
Не, ну эт понятно, но что именно там мешало автору выяснилось только сейчас.
Если бы сразу написал, что кэш мешает...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, как в обозревателе решений отобразить external dependenkies header files resource files source files readme Dimka-novitsek Visual C++ 0 05.12.2013 18:52
ошибка Temporary used for parameter 'A' in call to 'Rounde(float &)' Jawner C++ Builder 3 24.04.2013 12:33
Загрузка из файла Даsha Помощь студентам 0 22.06.2011 13:08
Работа с Temporary Internet Files Maksas Общие вопросы Delphi 3 30.11.2009 15:29
Проблема такова: язык:Delphi7; сохранения файла; загрузка файла в String Grid lightdevil Общие вопросы Delphi 3 06.03.2009 23:10