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

Вниз

Обход 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
8-64238
Zergling
2002-12-04 09:29
2003.03.20
Движущаяся пунктирная линия (в прямоугольнике)


3-64012
Сергей
2003-02-28 21:56
2003.03.20
Работа с ADO


1-64222
Leviathanq
2003-03-08 22:18
2003.03.20
TRichEdit


3-64031
StarCon
2003-02-27 12:17
2003.03.20
Error в BDE


6-64271
бродяги
2003-01-29 13:33
2003.03.20
Защищенная сессия





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский