необходимо организовать поиск файлов на ФТП сервере (по всем вложенным папкам). есть функции FtpFindFirstFile InternetFindNextFile. проблемма слежующая: с одного коннекта можно создать только один хендл поиска.. но при рекурсивном поиске, при каждом углублении в директорию необходимо начинать новай поиск. так что, создавать новый коннект??? или есть другой способ поиска файлов? дизасмил аналогичные проги. в их импорте вининет вообще отсутствует.
выкладываю сорцы проги для поиска файлов на ФТП. работает через винирет. создаёт кучу коннектов. мне это очень не нравится. хочу услышать ваше мнение. кому не лень - буду благодарен. сканирует FAR сервер. об оптимизации не заботился. http://file.raid.ru/get.php?f=8ec1101f71bf421a1c630d0c5a2ffc47
Тебе нужно объединить эти функции в одну, FtpFindAllFiles, в которой будут образовываться 2 листа. В первом листе будут файлы, а во втором директории. Т.е. эта функция после заполнения буффера закроет handle поиска, и при обработке листа с директориями ты сново сможешь вызвать эту функцию. Единственная проблема, что при рекурсивном поиске, тебе прийдётся хранить все эти листы в памяти, но учитуя что это ftp, а не файловая система, это не будет большой особой проблемой. Added: Если бы я писал прогу, я бы этой либой тоже не пользовался, не такой уж и сложный протокол, всего несколько комманд и ИМХО гораздо проще создать сокет и общятся с сервером на прямую, и код будет более портабильный.
hidden пасиб. я с тобой согласен. но проблемма в том, что это бот.... а это прежде всего ограничение на размер кода. то есть вручную организовывать ФТП клиент, мне кажется, большая роскошь для него. если работать со списком директорий - как ты предлагаешь, то действительно ВинИнет тут на*** не нужен, т.к. комманда ls выдаёт все файлы внутри директории и работать через сокеты тут даже проще, чем через вининет.