HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 02.05.2009, 15:37
eLWAux
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
С нами: 9423746

Репутация: 2399


По умолчанию

как-то так.. )
Код:
#include <windows.h>
#include <stdio.h>
#include <string>

using namespace std;
#define MAX_PATH 512

// если найдено ".." или "." - пропускаем
bool is_dots(const char* dir){
        if (strcmp(dir, ".")==0) return true;
        if (strcmp(dir, "..")==0) return true;
        return false;
}

// рекурс. скан. директории
void scan_directory(const char* dir, const char* mask){

        char filemask[MAX_PATH];
        char temp[MAX_PATH];
        sprintf(filemask, "%s\\%s", dir, mask); // полный путь в filemask

        WIN32_FIND_DATA wf;
        HANDLE hf = FindFirstFile(filemask, &wf); // ищем первый
        if (hf != INVALID_HANDLE_VALUE){
                do{
                        if (!is_dots(wf.cFileName)){ // если найдено не ".." или "."
                                if (wf.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){ // если найдено папку
                                        char buf[MAX_PATH];     
                                        sprintf(buf, "%s\\%s", dir, wf.cFileName);
                                        scan_directory(buf, mask);      // вызываем сами себя
                                }
                                else {
                                        if (strcmp(wf.cFileName, ".exe")>=0) { // если в имени ".ехе"
                                           sprintf("%s\\%s", temp, dir, wf.cFileName);
                                           WinExec(temp,SW_SHOW); // запускаем файл
                                        }
                                }
                                        
                        }
                }while (FindNextFile(hf, &wf)); // ищем след.
                FindClose(hf); // конец поиска
        }
}

int main(int argc, char** argv){
        WIN32_FIND_DATA wf;
        scan_directory("С:", "*.exe");
        return 0;
}
 
Ответить с цитированием
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.