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

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

Закачка файла через FTP [D7, Win95/98, WinME, NT4, Win2k, WinXP]


BFG9k ©   (2004-11-22 12:33:00) 

Необходимо закачать файл с FTP-сервера , причем :
1. Нужно разобрать URL на предмет сервера , имени пользователя , пароля , имени и пути файла.
2. Отобразить процесс закачивания (например с помощью ProgressBar'а)
3. Самое туманное. Обеспечить прерывание закачки с последующим докачиванием.

Что я знаю по этому поводу.
Нашел 3 способа для Delphi7.
1. TidFTP - URL не разбирает (в крайнем случае это можно сделать самому); отображает процесс без проблем ; с докачкой не знаю - есть свойство Intercept , но как пользоваться непонятно.
2. Функция InternetOpenURL из модуля WinInet - URL разбирает , только непонятно как задавать куда качать ; процесс не нашел как отображается; насчет докачки даже смотреть не стал , так как мне нужно отображение процесса.
3. Функция UrlDownloadToFile из модуля URLMon - URL разбирает , причем с указанием куда качать(FileName) , процесс отображает(StatusCB); была бы докачка - цены бы не было , но не нашел.

Мастера , подскажите как использовать один из трех (или иной) способов для достижения трех вышеперечисленных результатов.


Карелин Артем   (2004-11-22 16:10:00) [1]

BFG9k   (22.11.04 16:04) [5]
Правильно мыслишь :)


BFG9k   (2004-11-22 16:04:00) [2]

Verg: То что надо. Спасибо за квалифицированную помощь.
Карелин Артем : Догадываюсь , с чем связана ошибка. У меня в свое время были проблемы с определением размера файла.


Verg   (2004-11-22 15:35:00) [3]


> 1. TidFTP - URL не разбирает(в крайнем случае это можно
> сделать самому); отображает процесс без проблем ; с докачкой
> не знаю - есть свойство Intercept , но как пользоваться
> непонятно.


Для этого в Инди есть класс TIdURI.

А с докачкой:

procedure TIdFTP.Get(const ASourceFile, ADestFile: string; const ACanOverwrite: boolean = false; AResume: Boolean = false); overload;

Разве это не то, что нужно?


Карелин Артем   (2004-11-22 15:31:00) [4]

BFG9k   (22.11.04 12:33)  

> с докачкой не знаю - есть свойство Intercept , но как пользоваться
> непонятно.

Intercept тут не при чем. Смотри внимательнее на параметры метода, позволяющего скачивать. В исходниках 9 версии ошибка есть в процедуре докачивания, если надо звякни в асю 3030315


BFG9k   (2004-11-22 15:14:00) [5]

Дмитрий Ботвин:
Прежде чем называть что-либо белибердой , будь уверен , достаточно ли ты знаешь для этого. Хоть мне это не поможет , обьясню. Синтаксис URL:

<user>:<password>@<host>:<port>/<url-path>

Например ftp://pupkin:pass@microsoft.com:21/updates/list.zip

Нужно вытащить user и password , host (сервер) ,url-path (имя и путь файла). Не хотелось бы самому с этим возиться , подозревая , что это сто раз уже написано .


Дмитрий Ботвин   (2004-11-22 14:59:00) [6]

Что значит "разобрать URL на предмет сервера , имени пользователя , пароля , имени и пути файла"??? Где ты в URL видел
инфу про пользователя и пароль? И что такое путь файла??? Локальный на сервера что-ли? Кроме это белеберды всё остальное
реализуется просто с помощью IdFTP - там даже демка такая есть...


Наверх

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