FTP (Delphi)

Andrey M
Администратор
Администратор
Аватара
Andrey M
Администратор
Администратор
Репутация: 0
Сообщения: 2345
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт Skype

Re: FTP (Delphi)

Сообщение #61 Andrey » 10.06.2012, 10:19

Тема перенесена из архива.

Maximus M
Автор темы, Супермодератор
Супермодератор
Аватара
Maximus M
Автор темы, Супермодератор
Супермодератор
Репутация: 0
Сообщения: 1507
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт

Re: FTP (Delphi)

Сообщение #62 Maximus » 10.06.2012, 12:01

Необходимо получить время и дату последнего изменения, объём файла, а потом закачать его с FTP. Как это сделать?

Andrey M
Администратор
Администратор
Аватара
Andrey M
Администратор
Администратор
Репутация: 0
Сообщения: 2345
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт Skype

Re: FTP (Delphi)

Сообщение #63 Andrey » 10.06.2012, 12:12

Сейчас проверю, но дату и время последнего изменения вроде бы возвращает команда List, нужно только распарсить результат.
А скачивать так:

Код: Выделить всё

idFTP.Get('test.rar', 'c:/temp/test.rar', True);

Первый параметр - имя файла, второй - путь для сохранения.

Maximus M
Автор темы, Супермодератор
Супермодератор
Аватара
Maximus M
Автор темы, Супермодератор
Супермодератор
Репутация: 0
Сообщения: 1507
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт

Re: FTP (Delphi)

Сообщение #64 Maximus » 10.06.2012, 12:19

Если во втором параметре не указывать путь, а только имя файла, то он будет сохранён в тот же каталог где и исполняемый файл? Что означает третий параметр?

Andrey M
Администратор
Администратор
Аватара
Andrey M
Администратор
Администратор
Репутация: 0
Сообщения: 2345
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт Skype

Re: FTP (Delphi)

Сообщение #65 Andrey » 10.06.2012, 12:24

Если не указывать путь то файл будет сохранён в текущий каталог. Тртий параметр - поддержка докачки при обрыве связи.

Maximus M
Автор темы, Супермодератор
Супермодератор
Аватара
Maximus M
Автор темы, Супермодератор
Супермодератор
Репутация: 0
Сообщения: 1507
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт

Re: FTP (Delphi)

Сообщение #66 Maximus » 10.06.2012, 12:32

А вес файла как получить?

Andrey M
Администратор
Администратор
Аватара
Andrey M
Администратор
Администратор
Репутация: 0
Сообщения: 2345
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт Skype

Re: FTP (Delphi)

Сообщение #67 Andrey » 10.06.2012, 12:38

Уже писал
[delphi]FTP.List;
for i:=0 to FTP.DirectoryListing.Count-1 do
ListBox1.Items.Add(IdFTP.DirectoryListing.Items[i].FileName + ' ' + IntToStr(IdFTP.DirectoryListing.Items[i].Size));[/delphi]
Последняя часть третьей строки.
Ну или вручную парсить результат команды List.

Maximus M
Автор темы, Супермодератор
Супермодератор
Аватара
Maximus M
Автор темы, Супермодератор
Супермодератор
Репутация: 0
Сообщения: 1507
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт

Re: FTP (Delphi)

Сообщение #68 Maximus » 10.06.2012, 12:42

Это мы получим размеры всех файлов хранящихся в директории FTP, а размер одного конкретного файла нельзя узнать?
Или придётся в цикле проверять имена, пока не найду нужное?

Andrey M
Администратор
Администратор
Аватара
Andrey M
Администратор
Администратор
Репутация: 0
Сообщения: 2345
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт Skype

Re: FTP (Delphi)

Сообщение #69 Andrey » 10.06.2012, 12:49

Код: Выделить всё

IdFTP1.Size('имя_файла');

Не все серверы поддерживают эту команду

Maximus M
Автор темы, Супермодератор
Супермодератор
Аватара
Maximus M
Автор темы, Супермодератор
Супермодератор
Репутация: 0
Сообщения: 1507
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт

Re: FTP (Delphi)

Сообщение #70 Maximus » 10.06.2012, 13:05

Действительно не поддерживает. А как лучше сделать, мне нужно постоянно сверять размер файла т.е. делаю это в таймере, мне каждый раз создавать соединение и отключаться или один раз при запуске программы соединиться?

Andrey M
Администратор
Администратор
Аватара
Andrey M
Администратор
Администратор
Репутация: 0
Сообщения: 2345
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт Skype

Re: FTP (Delphi)

Сообщение #71 Andrey » 10.06.2012, 13:20

Как часто таймер срабатывает?

Maximus M
Автор темы, Супермодератор
Супермодератор
Аватара
Maximus M
Автор темы, Супермодератор
Супермодератор
Репутация: 0
Сообщения: 1507
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт

Re: FTP (Delphi)

Сообщение #72 Maximus » 10.06.2012, 13:25

Думаю где-то через каждые 10-30 секунд.

Andrey M
Администратор
Администратор
Аватара
Andrey M
Администратор
Администратор
Репутация: 0
Сообщения: 2345
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт Skype

Re: FTP (Delphi)

Сообщение #73 Andrey » 10.06.2012, 13:27

Тогда лучше не отключаться, т.к. подключение происходит не мгновенно.

Maximus M
Автор темы, Супермодератор
Супермодератор
Аватара
Maximus M
Автор темы, Супермодератор
Супермодератор
Репутация: 0
Сообщения: 1507
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт

Re: FTP (Delphi)

Сообщение #74 Maximus » 10.06.2012, 13:32

А если вдруг соединение разорвётся? Вот такая проверка поможет?

Код: Выделить всё

If not IdFTP.Connected then IdFTP.Connect;

Andrey M
Администратор
Администратор
Аватара
Andrey M
Администратор
Администратор
Репутация: 0
Сообщения: 2345
С нами: 6 лет 6 месяцев
Откуда: Воронеж
ICQ Сайт Skype

Re: FTP (Delphi)

Сообщение #75 Andrey » 10.06.2012, 13:34

Да, поможет


Вернуться в «Delphi/Pascal»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 8 гостей