Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2009.02.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
anthems ©   (2007-05-19 04:10) [0]

После соединения с фтп сервером и забивания каталогов в ListBox, пытаюсь определить файл это или папка

if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType =ditDirectory
выпадает ошибка - "List index out of bounds"
при етом - IdFTP1.DirectoryListing.Items.Count = 0
IdFTP1.DirectoryListing.DirectoryName пустое

работаю с 2005 дельфой.
Заранее благодарен за все предложенные варианты решения проблемы.


 
Anatoly Podgoretsky ©   (2007-05-19 10:57) [1]

Зачем же ты обращаешься к списку если у тебя нет элементов?
Да и вообще сама идея странная, по индексу из одного списка обращаться к индексу другого списка, замучаешься с синхронизацией, в одном 3 в другом 10.


 
anthems ©   (2007-05-19 13:53) [2]

В этом то и проблема, что элементов нету а должны быть, может я чего не понимаю в работе этого компонента, поэтому и прошу помощи )


 
Anatoly Podgoretsky ©   (2007-05-19 13:59) [3]

> anthems  (19.05.2007 13:53:02)  [2]

Раз элементов нет, то не надо и обращаться.


 
anthems ©   (2007-05-19 14:15) [4]

Да ну ето понятно, что если там ничего нет то и лезть туда не надо, я же спрашиваю почему там ничего нет и как сделать так что бы там что-то было


 
Anatoly Podgoretsky ©   (2007-05-19 14:59) [5]

> anthems  (19.05.2007 14:15:04)  [4]

У тебя ошибка в программе


 
anthems ©   (2007-05-19 18:56) [6]

Вот код, может забыл что где
procedure TForm1.ShowDir(Path: string);
var
 List: TStringList;
begin
 List := TStringList.Create;
 try
   idFTP1.ChangeDir(Path);
   IdFTP1.TransferType := ftASCII;
   StatusBar1.Panels.Items[1].Text := Form1.idFTP1.RetrieveCurrentDir;
   DirectoryListBox.Items.Clear;
   IdFTP1.List(List);
   DirectoryListBox.Items.Assign(List);
   if DirectoryListBox.Items.Count > 0 then
       if AnsiPos("total", DirectoryListBox.Items[0]) > 0 then DirectoryListBox.Items.Delete(0);
 finally
       List.Free;
 end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if IdFTP1.Connected then
       try
         IdFTP1.Quit;
       finally
             DirectoryListBox.Items.Clear;
             Path := "/";
       end
   else with IdFTP1 do
         try
           Username := Edit2.Text;
           Password := Edit3.Text;
           Host := Edit1.Text;
           Connect;
           ShowDir("/");
         finally
   end;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var
 i,Count: integer;
begin
 Count:=0;
 for i := 0 to DirectoryListBox.Count - 1 do
   if IdFTP1.DirectoryListing.Items[i].ItemType <> ditDirectory then
     Inc(Count);
 ShowMessage(IntToStr(MyCount));
end;


 
selax   (2007-12-21 06:39) [7]

Все просто.
Нужно в uses дописать IdAllFTPListParsers



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

Форум: "Сети";
Текущий архив: 2009.02.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
6-1198218343
LexXL
2007-12-21 09:25
2009.02.08
проверить наличие файла на ftp


15-1229417653
svchost.exe
2008-12-16 11:54
2009.02.08
Много кушается памяти......


15-1229109631
Городской Шаман
2008-12-12 22:20
2009.02.08
Замыкания для методов классов в C++. Как?


4-1204667510
Vemer
2008-03-05 00:51
2009.02.08
Как сделать PreView заставки на OpenGL?


10-1152619674
BiND
2006-07-11 16:07
2009.02.08
OLE Automation?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский