Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Реверсинг (https://forum.antichat.xyz/forumdisplay.php?f=94)
-   -   WinInet.. поиск файлов на FTP (https://forum.antichat.xyz/showthread.php?t=35460)

gevara 14.03.2007 04:48

WinInet.. поиск файлов на FTP
 
необходимо организовать поиск файлов на ФТП сервере (по всем вложенным папкам). есть функции FtpFindFirstFile InternetFindNextFile. проблемма слежующая:
с одного коннекта можно создать только один хендл поиска.. но при рекурсивном поиске, при каждом углублении в директорию необходимо начинать новай поиск. так что, создавать новый коннект??? или есть другой способ поиска файлов?
дизасмил аналогичные проги. в их импорте вининет вообще отсутствует.

gevara 14.03.2007 18:10

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

http://file.raid.ru/get.php?f=8ec1101f71bf421a1c630d0c5a2ffc47

*NoNamE* 14.03.2007 20:02

Причём тут реверсинг ?

gevara 14.03.2007 21:33

извини, более подходищего раздела я не увидел.

hidden 15.03.2007 05:27

Цитата:

Сообщение от gevara
с одного коннекта можно создать только один хендл поиска.. но при рекурсивном поиске, при каждом углублении в директорию необходимо начинать новай поиск.

Тебе нужно объединить эти функции в одну, FtpFindAllFiles, в которой будут образовываться 2 листа. В первом листе будут файлы, а во втором директории. Т.е. эта функция после заполнения буффера закроет handle поиска, и при обработке листа с директориями ты сново сможешь вызвать эту функцию. Единственная проблема, что при рекурсивном поиске, тебе прийдётся хранить все эти листы в памяти, но учитуя что это ftp, а не файловая система, это не будет большой особой проблемой.

Added:
Цитата:

дизасмил аналогичные проги. в их импорте вининет вообще отсутствует.
Если бы я писал прогу, я бы этой либой тоже не пользовался, не такой уж и сложный протокол, всего несколько комманд и ИМХО гораздо проще создать сокет и общятся с сервером на прямую, и код будет более портабильный. ;)

gevara 15.03.2007 12:42

hidden

пасиб. я с тобой согласен. но проблемма в том, что это бот.... а это прежде всего ограничение на размер кода. то есть вручную организовывать ФТП клиент, мне кажется, большая роскошь для него.

если работать со списком директорий - как ты предлагаешь, то действительно ВинИнет тут на*** не нужен, т.к. комманда ls выдаёт все файлы внутри директории и работать через сокеты тут даже проще, чем через вининет.


Время: 18:04