Форум программистов, компьютерный форум CyberForum.ru

Поиск файлов по маске в заданной и вложенных папках - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как округлить число типо float? http://www.cyberforum.ru/cpp-beginners/thread193952.html
Как округлить число типо float до определенного числа знаков после запятой?
C++ vfnhbwe заполнить нулями и единицами, расположив их в шахматном порядке Целочисленный массив K(n,n) заполнить нулями и единицами, расположив их в шахматном порядке http://www.cyberforum.ru/cpp-beginners/thread193948.html
Странно себя ведёт массив в классе. C++
Доброго времени суток всем. Есть у меня некий класс class * { private int mas; int len; //фактическая длина массива public class(){}; ... ...
C++ Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны
Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны. Помогите решить задачу плз. Решить надо на С++. Квадратное уравнение, с применением массива и циклом for вроде так. Добавлено через 1 час 20 минут задача в принципе не сложная написать то половину могу только не понятные ошибки с массивом...
C++ Ссылка на указатель http://www.cyberforum.ru/cpp-beginners/thread193940.html
Почему не работает такая конструкция? void SwapInt(void* p1, void* p2) { int* & tmp=static_cast<int*>(p2); } и как исправить?
C++ Удаление в АВЛ Дереве. Всем доброго времени суток. Очень прошу помочь с АВЛ деревом. Есть программа. Только тестах одного типа вылетает. Не могу понять почему. В коде содержаться подробные комментарии. Файл avl.h: #include <iostream> #include <cassert> using namespace std; template <class T> class Avl_tree { private: подробнее

Показать сообщение отдельно
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
19.11.2010, 20:23     Поиск файлов по маске в заданной и вложенных папках
Написать программу поиска файлов по их расширению в текущей или вложеной папках. Программа должна выполнять упорядочивание файлов по дате, размеру и дате создания
Функция поиска файлов по маске в заданной и вложенных папках.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
BOOL SearchFiles(
        LPCTSTR lpszFileName,                // Директория и маска файлов для поиска
        LPSEARCHFUNC lpSearchFunc,            // Функция, вызываемая для всех найденных файлов.
        BOOL bInnerFolders /* = TRUE */)    // TRUE - поиск в подпапках. 
                                            // FALSE - поиск только в заданной папке
typedef void (*LPSEARCHFUNC)(LPCTSTR lpszFileName);
 
BOOL SearchFiles(LPCTSTR lpszFileName, LPSEARCHFUNC lpSearchFunc, BOOL bInnerFolders = TRUE)
{
    LPTSTR part;
   char tmp[MAX_PATH]; // временный массив
    char name[MAX_PATH];
 
   HANDLE hSearch = NULL;
   WIN32_FIND_DATA wfd;
    memset(&wfd, 0, sizeof(WIN32_FIND_DATA));
 
    // сначало поиск внутри вложенных папках ...
    if(bInnerFolders)
    {
        if(GetFullPathName(lpszFileName, MAX_PATH, tmp, &part) == 0) return FALSE;
        strcpy(name, part);
        strcpy(part, "*.*");
 
        // если папки существуют, то делаем поиск
        wfd.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY;
        if (!((hSearch = FindFirstFile(tmp, &wfd)) == INVALID_HANDLE_VALUE))
        do
        {
            // в каждой папке есть две папки с именами "." и ".."
            // и эти папки мы не трогаем
 
            // пропускаем папки "." и ".."
            if (!strncmp(wfd.cFileName, ".", 1) || !strncmp(wfd.cFileName, "..", 2))            
           continue;
       
            if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) // если мы нашли папку
            {
                char next[MAX_PATH];
                if(GetFullPathName(lpszFileName, MAX_PATH, next, &part) == 0) return FALSE;
                strcpy(part, wfd.cFileName);
                strcat(next, "\\");
                strcat(next, name);
 
                SearchFiles(next, lpSearchFunc, TRUE);
            }
        }
        while (FindNextFile(hSearch, &wfd)); // ищем следующий файл
 
        FindClose (hSearch); // заканчиваем поиск
    }
 
   if ((hSearch = FindFirstFile(lpszFileName, &wfd)) == INVALID_HANDLE_VALUE) 
       return TRUE; // в противном случае выходим
   do
   if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) // если мы нашли файл
   {
        char file[MAX_PATH];
        if(GetFullPathName(lpszFileName, MAX_PATH, file, &part) == 0) return FALSE;
        strcpy(part, wfd.cFileName);
 
        lpSearchFunc(file);
   }
   while (FindNextFile(hSearch, &wfd)); // ищем следующий файл
   FindClose (hSearch); // заканчиваем поиск
 
    return TRUE;
}
Вот код программы но она почему то неработает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru