![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
idFTP - как скачать файл с определенной позиции [D7, XP]
tytus © (2008-09-25 17:44:00)Доброго дня всем. Вот такой вопрос.
Мне нужно периодически по FTP скачивать файл. Файл большой ( в среднем 100 Мб). Файл постоянно дописывается. Нужно через некоторое время постоянно копировать файл с предыдущей позиции и до конца файла. Чтобы каждый раз не перекачивать весь файл.
tytus (2008-09-25 18:19:00) [1]>Palladin © (25.09.08 18:07) [6]
ок, понял. Спасибо.
Palladin (2008-09-25 18:07:00) [2]Зачем определять размер файла? И зачем половину то? Пусть весь скачивает. Сколько скачает - столько запишет. Перед следующим вызовом TIdFtp.Get будет достаточно вызвать TStream.Seek(0,soFromEnd)
tytus (2008-09-25 18:02:00) [3]>Palladin © (25.09.08 17:56) [3]
немного проясняется...
значит, можно определить размер файла, и установить в TStream.Position - половину файла (чтобы не скачивать весь файл). Затем вызвать Get. Так?
Запомнить конец файла, и при следующем копировании в TStream.Position указать предыдущий конец файла.
>Поросенок Винни-Пух © (25.09.08 17:56) [4]
файл постоянно дописывается, посему докачка нужна...
Palladin (2008-09-25 17:56:00) [4]не совсем, в функцию передается TStream
при AResume=True, метод Get будет запрашивать требуемый файл с позиции TStream.Position
Поросенок Винни-Пух (2008-09-25 17:56:00) [5]если первый раз скачать целиком, то докачивать ничего не надо
tytus (2008-09-25 17:52:00) [6]>Palladin © (25.09.08 17:48) [1]
значит, первый раз, мне нужно скачать весь файл целиком. А потом снова вызывать Get с указанием что нужно докачивать? Так?
Palladin (2008-09-25 17:48:00) [7]так ведь собственно у TIdFTP имеет место быть существование параметра AResume у метода Get
а так как Indy Гроуп ну никак не скрывает исходники, то работа с докачкой просто очевидна...