Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как до закачки файла из сети, определить его размер [D6, D7, WinXP]


Volf_555 ©   (2005-11-05 20:53:00) 

Суть в следующем - до того момента мне необходимо определить размер входящего файла. Следующий код это делает, но не совсем:
procedure TForm1.RecFileCMSG(Sender: TComponent; const sFrom: String;
 strm: TStream);
var
fs:TFileStream;
begin
Memo1.Lines.Add('Входящий файл: '+sFrom);
SD1.FileName:=sFrom;
label4.Caption:=IntToStr(strm.Size);
if SD1.Execute then
begin
 edit3.Text:=sFrom;

 fs:=TFileStream.Create(sd1.FileName{+sFrom}, fmCreate);
 Gauge1.MaxValue:=Strm.Size;
 Gauge1.Progress:=Strm.Position;
 fs.CopyFrom(Strm,Strm.Size);
 fs.Free;
end;
end;

Проблема заключается в том, что показывается сразу полный размер входящего файла. Если файл имеет размер более 30 мегабайт, то похоже что комп зависает, хотя на самом деле не так, так как идёт определение размера входящего файла. Как мне сделать в своей программе показывание промежуточных результатов размера входящего файла, как в программе Download+?


Volf_555   (2005-11-10 00:54:00) [1]

umbra ©   (09.11.05 10:32) [2]
Кстати, я делал так, чтобы сразу присылался размер файла, а потом уже загрузка шла - но ничего не выходит. По-прежнему продолжает автоматом проверять размер...

Чапаев ©   (09.11.05 11:00) [3]
В смысле по пришедшему заголовку извлечь из него размер файла?


Чапаев   (2005-11-09 11:00:00) [2]

Смотри в сторону метода HTTP HEAD. (Если я правильно понял задачу)


umbra   (2005-11-09 10:32:00) [3]

может это можно сделать не своим стримом а командой серверу, чтобы он выдал список файлов с размерами?


Volf_555   (2005-11-08 19:16:00) [4]

Может всё-таки кто-то знает как такое осуществить?


Наверх

Титульная страница Поиск, карта сайта Написать письмо