![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обход FTP [D5, Win2k]
Greg King © (2002-12-17 09:30:00)вопрос: требуется обойти заданный FTP (адрес, порт, начальный
каталог, имя и пароль юзера м.б. учитывать прокси) и создать список файлов и
каталогов на нем. Пытаюсь родить это используя компоненту NMFTP, но
чего-то не получается. Monster FTP очень глючный. есть у него процедура BuildFileList, но она как то криво работает
Взываю к помощи, может кто ваял такое, буду признателен за любую
помошь: кусок исходника, компонент и т.п.
Logo (2003-01-30 09:12:00) [1]Используй алгоритмы поиска в длину или в ширину. учитывая то что у тебя граф есть дерево. эти алгоритмы имеют неплохую оценку сверху по времени.
Miguel (2003-01-29 18:24:00) [2]Летом прошлого 2002 года натолкнулся на эту ошибку: команда List не работает под W"2000. В W"98 -- всё в порядке. По-моему барахлит компонент. Из-за лимита времени пришлось селектировать платформу ОС. Интересно, что компонент в новых версиях Delphi не обновлялся, а на "родной" html-странице предлагаются последние версии за деньги. Хочу узнать, как разрешилась проблема? :))
Anatoly Podgoretsky (2002-12-17 12:14:00) [3]Я работаю как правило через консольный FTP, но это полностью относится и к программным методам, время выполнения команды LIST (я использую ls) может быть весьма длительным, да и кроме ее посылается еще много команд и ожидает ответ на них.
Для тебя более сложной задачей будет анализ полученного списка, многообразие форм просто убивает.
Greg King (2002-12-17 12:06:00) [4]сервер на самом что ни на есть локальном хосте.
а локаливать ошибку дело не сложное в данном случае: идем по шагам, доходим до FTP1.list, первый раз проходит, второй - проходит, третий - встало! Причем сервер (если я не ошибаюсь т.к. пару дней прошло) говорит, что последняя команда была list.
В общем буду ломать пока голову, если будут конструктивные предложения, буду рад услышать. Кстати, если кто работал с упоминавшейся выше библиотекой Monster FTP было бы интересно услышать отзывы о ней.
Reindeer Moss Eater (2002-12-17 11:51:00) [5]так в том то и дело что место замирания постоянно меняется
Может программа тут совсем не при чем?
Может канал иногда под завязку занят? Может FTP сервер виноват?
Может проверить клиента в "тепличных" условиях (сервер и клиент на одном хосте)?
Это чтобы не входить в бессмысленную дискуссию.
Ошибка должна быть локализована прежде всего, а потом уже последуют рекомендации по ее устранению
Greg King (2002-12-17 11:35:00) [6]To Anatoly Podgoretsky © (17.12.02 11:25)
Специфика не отличается, один к одному, за исключением используемых команд и почти полностью совпадает с действиями в командной строке а иногда и не одличается, если вервер поддерживает команду DIR
Дабы не входить в бессмысленную дискуссию хотелось бы увидеть пример
Greg King (2002-12-17 11:31:00) [7]так в том то и дело что место замирания постоянно меняется. Я даже по шагам смотрел. Сначала замирает на первых каталогах, затем позиция замирание отодвигается дальше и в произвольный(я не смог определить причину) все начинается сначала. Я благодарен за отзыв, но советы типа "надо внимательно..." мне не требуются, я все это прекрасно понимаю. Встретил где-то ссылку на Monster FTP. Когда прочитал описание, понял - это то что надо, но реализация весьма хромает и наблюдается сильное расхождение и без того скудной документации с этой самой реализацией (например, описание BuildFileList, где сказано, что она [процедура] строит список файло в и каталогов начиная с переданного в качестве параметра, а на деле ей передается недокументированная структура и при вызове начинается зацикленная попытка обхода корневого каталога с последующим вывалом программы вероятно по причине переполнения стека), но это все не столь важно, я пытаюсь получить от продвинутого меньшиства совета. Очень не хочется изобретать пресловутый велосипед. А если интересно, я хочу сделать поисковую систему по FTP серверам на связке ОбходКаталоговСерверов-БД-CGI-WebInterface
Anatoly Podgoretsky (2002-12-17 11:25:00) [8]Greg King © (17.12.02 11:06)
Специфика не отличается, один к одному, за исключением используемых команд и почти полностью совпадает с действиями в командной строке а иногда и не одличается, если вервер поддерживает команду DIR
Reindeer Moss Eater (2002-12-17 11:13:00) [9]но в некоторый момент происходит простое замирание программы
В таких случаях очень помогает протоколирование работы программы в файл, эталонная струтура каталогов используемого сервера и внимательный разбор того и другого.
Greg King (2002-12-17 11:06:00) [10]не получается реализовать рекурсивный (или иной) обход каталогов. Я понимаю, что сделать можно все, что угодно, но хотелось бы малой кровью.
Пытался сделать это основываясь на алгоритме обхода каталогов на локальном диске, но в данном случае несколько другая специфика. Получаю список каталогов с указанного в качестве начального, далее необходимо рекурсивно посетить каждый каталог, получить спикок дочерних каталогов (каждый в виде своего списка), причем помнить уровень вложенности, не забывать вернуться назад и подчистить то, что насоздавал. Все вроде нормально (более или менее) но в некоторый момент происходит простое замирание программы в момент вызова list - процессор загружен на 100 проц. и программу приходится снимать принудительно. С чем связано - не пойму. Вот и интересуюсь кто как это когда и делал.
Reindeer Moss Eater (2002-12-17 10:22:00) [11]Что конкретно не получается?
Greg King (2002-12-17 10:05:00) [12]мне надо обойти FTP сервер и построить список файлов и/или каталогов на нем для последующей обработки, но это уже не важно.
главное - обойти и построить.
просто получить список в виде StringList
Reindeer Moss Eater (2002-12-17 09:33:00) [13]Пытаюсь родить это используя компоненту NMFTP, но
чего-то не получается.
Что именно?