![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с IdFTP
inex © (2007-02-09 10:50:00)Добрый день!
Помогите, пожалуйста, разобраться с проблемкой.
Нужно скопировать файл с фтп-сервера. Для этого использую компонент IdFTP:
IdFTP1.Connect;
IdFTP1.Get('file.txt','file.txt',true);
IdFTP1.Disconnect;
Если фтп-сервер недоступен то IdFTP1.Connect никакую ошибку не выдает, а как можно узнать о том удался коннект или нет?
И еще подскажите пожалуйста, как можно узнать о существовании файла на фтп-сервере?
umbra (2007-02-09 13:38:00) [1]
try
IdFTP1.Connect;
IdFTP1.Get('file.txt','file.txt',true);
IdFTP1.Disconnect;
except
on EIdConnectTimeout do
begin
IdFTP1.Disconnect;
raise;
end;
on E: EIdReplyRFCError do
begin
IdFTP1.Disconnect;
if (E.ErrorCode = 450) or (E.ErrorCode = 550 )then
ShowMessage('Невозможно скачать файл!');
end;
end;
Сергей М. (2007-02-09 12:55:00) [2]try
IdFTP1.Connect;
try
IdFTP1.Get('file.txt','file.txt',true);
finally
IdFTP1.Disconnect;
end;
except
on e:exception do
showmessage(e.ClassName + ' ' + e.Message);
end;
Плохиш (2007-02-09 12:12:00) [3]
> Но вот если фтп доступен и файл есть то при повторном запуске
> данных операторов приложение все-равно выдает ошибку.
"Такие интересные и понятные намёки" (c) котёнок Гав.
Кстати я сегодня кофе не пью, желания нет, так что жди пока у меня желание на кофе появиться, может заодно и погадаю...
inex (2007-02-09 12:09:00) [4]Дело в том что мне нужно оброботать две исключительных ситуации:
1. отсутствие коннекта с фтп-сервером
2. отсутствие файла на фтп-сервере
Я делал так:
try
IdFTP1.Connect;
IdFTP1.Get('file.txt','file.txt',true);
IdFTP1.Disconnect;
except
showmessage('error');
при первом вызове данных операторов, если одно из исключений присутствует, программа отрабатывает нормально (выдает сообщение об ошибке). Но вот если фтп доступен и файл есть то при повторном запуске данных операторов приложение все-равно выдает ошибку.
Может я что-то не так сделал или нужно еще что-то добавить?
Плохиш (2007-02-09 11:45:00) [5]
> inex (09.02.07 11:24) [2]
>
> > Странно, а у меня говорит, что время ожидания истекло.
>
>
>
> Насколько я знаю IdFTP1.Connect ничего не возвращает. В
> каком виде он тебе это говорит.
В виде исключения.
Сергей М. (2007-02-09 11:42:00) [6]
> В каком виде он тебе это говорит.
В том же самом виде, в котором, к примеру, Strings.LoadFromFile говорит о несуществующем файле, который ты пытаешься загрузить
inex (2007-02-09 11:24:00) [7]
> Странно, а у меня говорит, что время ожидания истекло.
Насколько я знаю IdFTP1.Connect ничего не возвращает. В каком виде он тебе это говорит.
Плохиш (2007-02-09 11:18:00) [8]
> Если фтп-сервер недоступен то IdFTP1.Connect никакую ошибку
> не выдает
Странно, а у меня говорит, что время ожидания истекло.
> как можно узнать о том удался коннект или нет?
У компонента имеется соответствующее свойство.
> И еще подскажите пожалуйста, как можно узнать о существовании
> файла на фтп-сервере?
Надо выполнить метод List.