Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.20;
Скачать: CL | DM;

Вниз

Обход FTP   Найти похожие ветки 

 
Greg King ©   (2002-12-17 09:30) [0]

вопрос: требуется обойти заданный FTP (адрес, порт, начальный
каталог, имя и пароль юзера м.б. учитывать прокси) и создать список файлов и
каталогов на нем. Пытаюсь родить это используя компоненту NMFTP, но
чего-то не получается. Monster FTP очень глючный. есть у него процедура BuildFileList, но она как то криво работает

Взываю к помощи, может кто ваял такое, буду признателен за любую
помошь: кусок исходника, компонент и т.п.


 
Reindeer Moss Eater   (2002-12-17 09:33) [1]

Пытаюсь родить это используя компоненту NMFTP, но
чего-то не получается.


Что именно?


 
Greg King ©   (2002-12-17 10:05) [2]

мне надо обойти FTP сервер и построить список файлов и/или каталогов на нем для последующей обработки, но это уже не важно.
главное - обойти и построить.
просто получить список в виде StringList


 
Reindeer Moss Eater   (2002-12-17 10:22) [3]

Что конкретно не получается?


 
Greg King ©   (2002-12-17 11:06) [4]

не получается реализовать рекурсивный (или иной) обход каталогов. Я понимаю, что сделать можно все, что угодно, но хотелось бы малой кровью.
Пытался сделать это основываясь на алгоритме обхода каталогов на локальном диске, но в данном случае несколько другая специфика. Получаю список каталогов с указанного в качестве начального, далее необходимо рекурсивно посетить каждый каталог, получить спикок дочерних каталогов (каждый в виде своего списка), причем помнить уровень вложенности, не забывать вернуться назад и подчистить то, что насоздавал. Все вроде нормально (более или менее) но в некоторый момент происходит простое замирание программы в момент вызова list - процессор загружен на 100 проц. и программу приходится снимать принудительно. С чем связано - не пойму. Вот и интересуюсь кто как это когда и делал.


 
Reindeer Moss Eater   (2002-12-17 11:13) [5]

но в некоторый момент происходит простое замирание программы
В таких случаях очень помогает протоколирование работы программы в файл, эталонная струтура каталогов используемого сервера и внимательный разбор того и другого.


 
Anatoly Podgoretsky ©   (2002-12-17 11:25) [6]

Greg King © (17.12.02 11:06)
Специфика не отличается, один к одному, за исключением используемых команд и почти полностью совпадает с действиями в командной строке а иногда и не одличается, если вервер поддерживает команду DIR


 
Greg King ©   (2002-12-17 11:31) [7]

так в том то и дело что место замирания постоянно меняется. Я даже по шагам смотрел. Сначала замирает на первых каталогах, затем позиция замирание отодвигается дальше и в произвольный (я не смог определить причину) все начинается сначала. Я благодарен за отзыв, но советы типа "надо внимательно..." мне не требуются, я все это прекрасно понимаю. Встретил где-то ссылку на Monster FTP. Когда прочитал описание, понял - это то что надо, но реализация весьма хромает и наблюдается сильное расхождение и без того скудной документации с этой самой реализацией (например, описание BuildFileList, где сказано, что она [процедура] строит список файло в и каталогов начиная с переданного в качестве параметра, а на деле ей передается недокументированная структура и при вызове начинается зацикленная попытка обхода корневого каталога с последующим вывалом программы вероятно по причине переполнения стека), но это все не столь важно, я пытаюсь получить от продвинутого меньшиства совета. Очень не хочется изобретать пресловутый велосипед. А если интересно, я хочу сделать поисковую систему по FTP серверам на связке ОбходКаталоговСерверов-БД-CGI-WebInterface


 
Greg King ©   (2002-12-17 11:35) [8]

To Anatoly Podgoretsky © (17.12.02 11:25)
Специфика не отличается, один к одному, за исключением используемых команд и почти полностью совпадает с действиями в командной строке а иногда и не одличается, если вервер поддерживает команду DIR

Дабы не входить в бессмысленную дискуссию хотелось бы увидеть пример


 
Reindeer Moss Eater   (2002-12-17 11:51) [9]

так в том то и дело что место замирания постоянно меняется
Может программа тут совсем не при чем?
Может канал иногда под завязку занят? Может FTP сервер виноват?
Может проверить клиента в "тепличных" условиях (сервер и клиент на одном хосте)?

Это чтобы не входить в бессмысленную дискуссию.
Ошибка должна быть локализована прежде всего, а потом уже последуют рекомендации по ее устранению


 
Greg King ©   (2002-12-17 12:06) [10]

сервер на самом что ни на есть локальном хосте.
а локаливать ошибку дело не сложное в данном случае: идем по шагам, доходим до FTP1.list, первый раз проходит, второй - проходит, третий - встало! Причем сервер (если я не ошибаюсь т.к. пару дней прошло) говорит, что последняя команда была list.
В общем буду ломать пока голову, если будут конструктивные предложения, буду рад услышать. Кстати, если кто работал с упоминавшейся выше библиотекой Monster FTP было бы интересно услышать отзывы о ней.


 
Anatoly Podgoretsky ©   (2002-12-17 12:14) [11]

Я работаю как правило через консольный FTP, но это полностью относится и к программным методам, время выполнения команды LIST (я использую ls) может быть весьма длительным, да и кроме ее посылается еще много команд и ожидает ответ на них.

Для тебя более сложной задачей будет анализ полученного списка, многообразие форм просто убивает.


 
Miguel   (2003-01-29 18:24) [12]

Летом прошлого 2002 года натолкнулся на эту ошибку: команда List не работает под W"2000. В W"98 -- всё в порядке. По-моему барахлит компонент. Из-за лимита времени пришлось селектировать платформу ОС. Интересно, что компонент в новых версиях Delphi не обновлялся, а на "родной" html-странице предлагаются последние версии за деньги. Хочу узнать, как разрешилась проблема? :))


 
Logo ©   (2003-01-30 09:12) [13]

Используй алгоритмы поиска в длину или в ширину. учитывая то что у тебя граф есть дерево. эти алгоритмы имеют неплохую оценку сверху по времени.



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

Текущий архив: 2003.03.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
3-64023
Melbis
2003-03-01 16:01
2003.03.20
Как программно выделить строку в DBGrid


1-64128
msoftware
2003-03-09 05:37
2003.03.20
Stream не хочет сохранять полноцветные значки


3-63976
cherox
2003-02-27 12:24
2003.03.20
TADOQuery


3-64035
Иван Брылёв
2003-03-02 03:37
2003.03.20
Временные файлы при выполнении запросов


14-64326
Ketmar
2003-03-04 16:53
2003.03.20
господа, как корректно сменить shell в win2k?