Главная страница
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.49 MB
Время: 0.02 c
15-1189256604
Галинка
2007-09-08 17:03
2007.10.07
Переполнение буфера/кучи


15-1189267018
УАув
2007-09-08 19:56
2007.10.07
Десятичный логарифм


6-1170760601
inex
2007-02-06 14:16
2007.10.07
Ошибка отправки ответа ServerSocket


1-1185435238
oxffff
2007-07-26 11:33
2007.10.07
Супер эффект с showmessage.


2-1187583615
apic
2007-08-20 08:20
2007.10.07
scroll