Я вот делаю свой vbs-bat антивирус. Ну и захотелось мне, значит, сделать реал-тайм проверку. Но вот проблема: кодом file_find_first() он ищет только в указанной директории, но не подпапках. Где-то была выложена ссылка на пример такого поиска, но увы она была битой. В гугль не посылать - по моему вопросу не было найдено ничего нужного.
И каким же макаром я буду определять все подпапки?
Quote (stalkerya)
C:/program files/и т.д. Попробуй так.
Основные-то я могу перечислить, но ведь вирусы могут скрываться в очень хитрых местах, а подпапок-то сколько надо будет прописывать! Мне нужно именно получать все подпапки заданной директории, затем получать их подпапки, затем подпапки этих подпапок и.т.д., а затем все-все директории записать в список, и в каждой папке искать вирусы. Вот так вот.
D9TEJI=D, На гм стоящий антивирус не напишешь. Game maker не предназначен для написания антивирусов. Для таких случаев нужно использовать C+/C#. Бросила девушка после того, как узнала, что я перешел с гм на Construct.
D9TEJI=D, file_find_first("*",fa_directory ) ищет папки аналогично как и файлы , а дальше загоняем папки в стек и в каждой из этих папок извлекаем файлы.
Вот пример кода поиска картинок во всех директориях входящих в gfx\, правда там немного мусора
Он мне вместе с папками выдаёт ещё и файлы =( Как исправить? Как сделать поиск подпапок в этих папках неограниченное количество раз? И ещё, как сделать поиск папок, пока они вообще существуют? repeat не катит, ибо количество папок мы не знаем.
Говорить, что всё это есть в твоём примере кода не надо: 1. результата при работе данного кода кроме вылета приложения не вижу. 2. в коде разобрать ничего не смог.
Сообщение отредактировал D9TEJI=D - Понедельник, 04 Апреля 2011, 23:34
ds_stack_push(stack,pach)// это диретория i +=1 } else убри что после этого "else"
Quote (D9TEJI=D)
поиск подпапок в этих папках неограниченное количество раз?
так там и есть - каждая новая папка загружается в стек , если обнаружена папка в текущей папке то тоже в стек и так далее...
Quote (D9TEJI=D)
ещё, как сделать поиск эти папок, пока они вообще существуют? repeat не катит, ибо количество папок мы не знаем?
while (ds_stack_size(stack) != 0) папки загружаются в стек и извлекаются по одной - пока стек не опустеет это делается - поэтому все папки во вложенных папках мы обрабатываем
Ладно, буду пробовать выдирать куски из кода. Спасибо за помощь, плюс сейчас поставлю. А вообще, я не против, если кто-нибудь ещё предложит какой-либо метод.