Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.015 c
2-1189525881
newanat
2007-09-11 19:51
2007.10.07
TListView про сортировку


9-1161197262
Nic
2006-10-18 22:47
2007.10.07
Самые лучшие заголовки к OpenGL


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


15-1189186950
barakuda
2007-09-07 21:42
2007.10.07
аналог mainmenu


2-1189207001
QRY123
2007-09-08 03:16
2007.10.07
Исходный код...




   Наверх