Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.07;
Скачать: CL | DM;

Вниз

работа с IdFTP   Найти похожие ветки 

 
inex   (2007-02-09 10:50) [0]

Добрый день!
Помогите, пожалуйста, разобраться с проблемкой.
Нужно скопировать файл с фтп-сервера. Для этого использую компонент IdFTP:

IdFTP1.Connect;
IdFTP1.Get("file.txt","file.txt",true);
IdFTP1.Disconnect;


Если фтп-сервер недоступен то  IdFTP1.Connect никакую ошибку не выдает, а как можно узнать о том удался коннект или нет?
И еще подскажите пожалуйста, как можно узнать о существовании файла на фтп-сервере?


 
Плохиш ©   (2007-02-09 11:18) [1]


> Если фтп-сервер недоступен то  IdFTP1.Connect никакую ошибку
> не выдает

Странно, а у меня говорит, что время ожидания истекло.

> как можно узнать о том удался коннект или нет?

У компонента имеется соответствующее свойство.

> И еще подскажите пожалуйста, как можно узнать о существовании
> файла на фтп-сервере?

Надо выполнить метод List.


 
inex   (2007-02-09 11:24) [2]


> Странно, а у меня говорит, что время ожидания истекло.


Насколько я знаю IdFTP1.Connect ничего не возвращает. В каком виде он тебе это говорит.


 
Сергей М. ©   (2007-02-09 11:42) [3]


> В каком виде он тебе это говорит.


В том же самом виде, в котором, к примеру, Strings.LoadFromFile говорит о несуществующем файле, который ты пытаешься загрузить


 
Плохиш ©   (2007-02-09 11:45) [4]


> inex   (09.02.07 11:24) [2]
>
> > Странно, а у меня говорит, что время ожидания истекло.
>
>
>
> Насколько я знаю IdFTP1.Connect ничего не возвращает. В
> каком виде он тебе это говорит.

В виде исключения.


 
inex   (2007-02-09 12:09) [5]

Дело в том что мне нужно оброботать две исключительных ситуации:

1. отсутствие коннекта с фтп-сервером
2. отсутствие файла на фтп-сервере

Я делал так:

try
IdFTP1.Connect;
IdFTP1.Get("file.txt","file.txt",true);
IdFTP1.Disconnect;
except
showmessage("error");

при первом вызове данных операторов, если одно из исключений присутствует, программа отрабатывает нормально (выдает сообщение об ошибке). Но вот если фтп доступен и файл есть то при повторном запуске данных операторов приложение все-равно выдает ошибку.
Может я что-то не так сделал или нужно еще что-то добавить?


 
Плохиш ©   (2007-02-09 12:12) [6]


> Но вот если фтп доступен и файл есть то при повторном запуске
> данных операторов приложение все-равно выдает ошибку.

"Такие интересные и понятные намёки" (c) котёнок Гав.

Кстати я сегодня кофе не пью, желания нет, так что жди пока у меня желание на кофе появиться, может заодно и погадаю...


 
Сергей М. ©   (2007-02-09 12:55) [7]

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;


 
umbra ©   (2007-02-09 13:38) [8]

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;



Страницы: 1 вся ветка

Текущий архив: 2007.10.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
1-1185387039
Efir
2007-07-25 22:10
2007.10.07
Сообщения клавиатуры


2-1189091338
Igor_
2007-09-06 19:08
2007.10.07
Шрифт в польской Windows XP


2-1188734828
Tehnik
2007-09-02 16:07
2007.10.07
имитация нажатия клавишь(мышки)


15-1189162697
Jeer
2007-09-07 14:58
2007.10.07
Несложная задачка


15-1189390927
Slider007
2007-09-10 06:22
2007.10.07
С днем рождения ! 10 сентября 2007 понедельник