Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Обходк директорий на ftp.  (Прочитано 12075 раз)
0 Пользователей и 1 Гость смотрят эту тему.
glisy
Гость
« : 25-03-2005 11:58 » 

Помогите пожалуйста в решении проблемы.
В общемм дела обстоят так: нужно работать с ftp сервером. после логина нужно совершить обход ВСЕХ директорий. Уже созданы функции для смены текущей директории (cd) и получения списка файлов и директорий (LIST) (она заполняет глобальную переменную именем директории если это файл то NULL). Буду крайне рад любой помощи.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 26-03-2005 22:34 » 

glisy, что должно получиться в итоге и чем помочь?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
glisy
Гость
« Ответ #2 : 31-03-2005 08:33 » 

нужно что бы после работы этой программы появился файл с именами всех директорий и файлов в них.
а помочь алгоритмом.. да я знаю что это реализовываеться крайне просто с использованием метода рекурсии, но могли бы подсказать более конкретно???
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 31-03-2005 14:09 » 

Принцип прост:
Код:
list(new_dir)
{
  old_cd = сохранить путь к текущей директории

  перейти в директоию new_dir

  прочитать список файлов и директорий

  for(.....) // разобрать этот список в цикле
  {
    если очередное имя - файл, то вывести его путь+имя
    если очередное имя - директория, то вызвать ф-ию list с параметром: имя новой директории
  }
  востановить путь old_cd

  выйти из ф-ии
}
new_dir может быть как абсолютным, так и относительным путем.
old_dir - только абсолютный путь.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
glisy
Гость
« Ответ #4 : 31-03-2005 17:15 » 

Здорово!
меня как раз смущало то как будем возвращаться назад (то есть у меня получилось опуститься до конца первой директории находящейся в первой директории первой диретории и т.д.)  в общем пасиба! завтра попробую это закодить и всё будет здорово (надеюсь:) )
Записан
glisy
Гость
« Ответ #5 : 28-04-2005 12:26 » 

вчера продолжил работу над этой прогой и понял то что алгоритм не верен,
по моему. программа будет постоянно залезать в первую директорию, которая в корне сервера первая и работать вниз в этом направлении...как бы это исправить.. и ещё если я неправ то пожалуйста поправьте потому как я очень хочу понять суть...
Записан
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #6 : 28-04-2005 12:32 » 

Описаную _предполагаемую_ ошибку анулирует " for(.....) // разобрать этот список в цикле" -> у нас _цикл_ мы просматриваем все директории по очереди а не все время первую.

а если имеется ввиду корень FTP сервера -> первый new_dir="./"
Записан

Удачного всем кодинга! -=x[PooH]x=-
glisy
Гость
« Ответ #7 : 28-04-2005 16:48 » new

Всё тепрь понятно! Как же я тормозл... спасибо большое!"
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines