Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IdFTP и дерево папок, Как с этим работать 
:(
    Опции темы
Дерзающий
Дата 10.10.2007, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Как работать с этим IdFTP компонентом и как его настраивать? Чего то не пойму. А мне надо прочесть дерево папок с сервера фтп. Помогите кто чем может.
PM MAIL   Вверх
Anikmar
Дата 10.10.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Настраивать примерно так:
Код

IdFTP1->Host = // Имя хоста (например ftp.peterhost.ru
IdFTP1->User = // Имя пользователя
IdFTP1->Password = // Пароль

Дальше подключаем
Код

IdFTP1->Connect();

Дальше считываем список файлов и директорий:
Код

TStringList *DirList;
DirList = new TStringList;
IdFTP1->List(DirList,"*",true);

Дальше обрабатываем получившиеся строки и ходим по директориям используя методы ChangeDir и ChangeDirUp повторяя считывание списка файлов и директорий.

Делал давно, если честно. На сколько помню все дерево сразу протокол считать не позволяет - надо примерно так как я сказал делать.

Соответственно не забываем перехватывать исключения и ловить нужные события.



PM MAIL ICQ   Вверх
Дерзающий
Дата 11.10.2007, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Спасибо с этим. Разобрался, все получилось. Но вот как этот DirList разобрать на имя, дату и тд. Сервер UNIX 8. И присылает строки нижеприведённого типа, а там дата в разном виде. А вдруг другой сервер будет. Есть ли какието стандартные компоненты для разбора строк?
    drwxrwsr-x    2 1037     1001         4096 Aug 13 07:34 ASP
    drwxrwsr-x    2 1037     1001         4096 Aug 10 14:05 Debian_4.0_32bit
    drwxrwsr-x    2 1037     1001         4096 Aug 13 07:31 Fedore
    -rwxrwxr-x    1 1037     1001      1992965 Sep 19 08:40 Joomla_1.0.13-Stable-Full_Package.tar.gz
    drwxrwsr-x    2 1008     1001         4096 Aug 13 08:07 Mandriva
    -rw-r--r--    1 1037     1001      5133193 Feb 28  2007 NFORCE-Linux-x86-1.21.zip
    -rwxr-----    1 1037     1001     14521900 Feb 28  2007 NVIDIA-Linux-x86-1.0-9746-pkg1.run
    drwxrwsr-x    2 1008     1001         4096 Sep 14 08:14 Opera
    drwxrwsr-x    2 1037     1001         4096 Aug 16 13:13 Ubuntu
    -rwxrwxr-x    1 1037     1001      2629046 Dec 26  2006 Unreal3.2.6.tar.gz
    -rw-r--r--    1 1037     1001       895797 Feb 27  2007 atk-1.17.0.tar.gz
    -rw-r--r--    1 1037     1001      2973689 Feb 27  2007 cairo-1.2.6.tar.gz
    drwxrwsr-x    5 1008     1001         4096 Jul 30 09:22 driver_printer_samsung
    -rwxrwxr-x    1 1037     1001       751205 Sep 18 05:49 drupal-5.2.tar.gz
    -rwxrwxr-x    1 1037     1001       783676 Aug 23  2006 eggdrop1.6.18.tar.bz2
    -rw-r--r--    1 1037     1001     10411710 Feb 28  2007 firefox-2.0.0.2.tar.gz
    -rw-r--r--    1 1037     1001      1278340 Feb 27  2007 fontconfig-2.4.2.tar.gz
    -rw-r--r--    1 1037     1001      1247997 Feb 27  2007 freetype-2.3.1.tar.bz2
    drwxrwsr-x    3 1037     1001         4096 Apr 02  2007 games
    -rw-r--r--    1 1037     1001      3880618 Feb 27  2007 glib-2.12.9.tar.gz
    -rw-r--r--    1 1037     1001     21900103 Feb 27  2007 gtk+-2.10.9.tar.gz
    -rw-r--r--    1 1037     1001      2609703 Feb 27  2007 install_flash_player_9_linux.tar.gz
    -rwxrwxr-x    1 1037     1001        10538 Sep 19 09:02 joomla_1.0.13_russian_frontend.zip
    -rwxrwxr-x    1 1037     1001     16403250 Jan 24  2006 jre-1_5_0_06-linux-amd64.bin
    -rwxr--r--    1 1037     1001     17115102 Feb 28  2007 jre-1_5_0_11-linux-i586.bin
    -rwxrwxr-x    1 1037     1001     18071335 Aug 22 06:22 jre-6u2-linux-amd64.bin
    -rwxrwxr-x    1 1037     1001     19109129 Aug 15 05:46 jre-6u2-linux-i586.bin
    drwxrwsr-x    2 1037     1001         4096 May 26 19:21 kernel
    -rw-r--r--    1 1037     1001       624085 Feb 27  2007 libpng-1.2.16.tar.bz2
    drwxrwsr-x    2 1037     1001         4096 May 11 12:30 mysql
    -rw-rw-r--    1 1008     1001      5659459 Aug 21 14:59 opera-9.21-20070510.6-shared-qt.i386-en.rpm
    -rw-rw-r--    1 1008     1001      5660465 Aug 21 14:59 opera-9.22-20070716.6-shared-qt.i386-en.rpm
    -rwxrwxr-x    1 1008     1001            0 Jul 24 15:48 opera-9.22-20070716.6-shared-qt.i386-en.rpm.part
    -rw-rw-r--    1 1008     1001      5660703 Aug 21 14:59 opera-9.23-20070809.6-shared-qt.i386-en.rpm
    -rw-r--r--    1 1037     1001      5188258 Feb 28  2007 opera_9.10-20061214.5-shared-qt_en_i386.deb
    -rw-r--r--    1 1037     1001      1907352 Feb 27  2007 pango-1.14.9.tar.gz
    drwxrwsr-x    2 1037     1001         4096 Jan 26  2007 php
    -rw-r--r--    1 1037     1001       968773 Feb 27  2007 pkgconfig-0.18.tar.gz
    -rw-r--r--    1 1037     1001      1336295 Feb 27  2007 tiff-3.8.2.tar.gz
    -rwxrwxr-x    1 1037     1001         2319 May 10 08:27 unrealircd-rus.patch
    -rwxrwxr-x    1 1037     1001       724960 Dec 28  2006 vnc-4_1_1-x86_win32.exe
    -rw-r--r--    1 1037     1001       537713 Feb 28  2007 vnc-4_1_2-unixsrc.tar.gz
    -rwxrwxr-x    1 1037     1001     1580286588 Jun 26 04:47 vsftpd.log
    -rw-r--r--    1 1037     1001     11586104 Feb 28  2007 wine-0.9.31.tar.bz2
    -rw-r--r--    1 1037     1001      1257232 Feb 27  2007 xchat-2.8.0.tar.bz2
    -rw-r--r--    1 1037     1001       822982 Feb 27  2007 xchat-common_2.6.8-1ubuntu1_i386.deb
    -rw-r--r--    1 1037     1001       320824 Feb 27  2007 xchat_2.6.8-1ubuntu1_i386.deb

PM MAIL   Вверх
Anikmar
Дата 11.10.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Директорию от файла я кажется отличал по первому символу атрибута - d - это признак директории..
Остальные поля вычленял - там размер, дата создания и т.п. - обычная работа со строками - выделение слов.
PM MAIL ICQ   Вверх
Дерзающий
Дата 11.10.2007, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Нашел такой код на делфи
Код

procedure   AddList(ListView:Tlistview);   
  var   
  newitem:Tlistitem;   
  i:integer;   
  fd:tftpdirectorylist;   
  begin   
      listview.Items.BeginUpdate;   
      fd:=tftpdirectorylist.Create;   
        
      for   i:=0   to   flist.Count-1   do   
      begin   
          fd.ParseLine(flist.Strings[i]);   
      end;   
      for   i:=0   to   fd.name.Count-1   do   
      begin   
          newitem:=tlistitem.Create(listview.Items);   
          newitem:=listview.Items.Add;   
          newitem.caption:=fd.name.Strings[i];   
          newitem.SubItems.Add(fd.Size.Strings[i]);   
          newitem.SubItems.Add(fd.Attribute.Strings[i]);   
          newitem.SubItems.Add(fd.ModifDate.Strings[i]);   
      end;   
      listview.Items.EndUpdate;   
      fd.Free;   
    
  end;   
  //其中flist是一个全局变量,已经被idftp.list(flist)处理过了;   
  //为什么fd.name.count竟然是0??   
  //我确信当前目录不是空目录.


А вот это мой код
Код

        ListBox1->Items->Clear();
        TStringList *L=new TStringList;
        IdFTP1->Host=Edit1->Text;
        IdFTP1->User=Edit2->Text;
        IdFTP1->Password=Edit3->Text;
        IdFTP1->Port=21;
        IdFTP1->Connect();
        bool c=IdFTP1->Connected();
        TFTPDirectoryList *DL=new TFTPDirectoryList();
        IdFTP1->List(L,"pub/linux",true);
        for(int i=0;i<L->Count;i++)
        {
                DL->ParseLine(L->Strings[i]);
        }
        for(int i=0;i<DL->name->Count;i++)
        {
                ListBox1->Items->Add(DL->name->Strings[i]);
        }


Почему в DL нечего нет, хотя в списке L есть все что нужно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.