0 / 0 / 1
Регистрация: 08.05.2012
Сообщений: 43
1

Поиск по подкаталогам

05.02.2013, 20:43. Показов 589. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,не буду писать суть всего задания.
У меня есть проход по всем файлам введёного каталога,как сделать так,что бы поиск производился и по вложенным каталогам?
Вот кусок кода:
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
if (hFileFind != INVALID_HANDLE_VALUE)
        {
            do
            {
                if ( (find_data.dwFileAttributes == FILE_ATTRIBUTE_NORMAL) || (find_data.dwFileAttributes ==FILE_ATTRIBUTE_ARCHIVE) )
                {
                    _tprintf(TEXT("%s\n"),find_data.cFileName);
                    strend = strpbrk(find_data.cFileName, ".");
                    i = strcspn(find_data.cFileName, ".");
                    lstrcpyn(str, find_data.cFileName, i+1);
                    strrev(str);
                    strcat(str, strend);
                    //------RENAME----
                    lstrcpy(oldName, "");
                    lstrcpy(newName, "");
                    wsprintf(oldName, "%s\\%s", buf, find_data.cFileName);
                    wsprintf(newName, "%s\\%s", buf, str);
                    rename(oldName, newName);
                    //----------------
                    strcat(str, "\n");
                    lstrcat(result, str);
                }
            }while(FindNextFile(hFileFind, &find_data));
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2013, 20:43
Ответы с готовыми решениями:

Поиск файла по подкаталогам
Есть неполный путь к файлу и имя файла.Т.е C:\Program Files\..\file.txt Мне нужно получить доступ...

Парсер имени файлов со списка, поиск по подкаталогам и запуск искомого файла
Добрый вечер уважаемые форумчане. Нужна ваша помощь в таком вопросе : По пути...

QRegExp поиск всех строк которые соответствуют шаблону и поиск их длины
//поиск строк типа ] QRegExp reg("\\\\]"); QString text = "test ] bla ]"; int pos =...

Поиск по сайту: не могу разобраться, как делать поиск по нескольким полям
поиск по одному полу осуществляется вот так: SELECT * from tablepart WHERE `marka` LIKE '%" ....

2
229 / 76 / 9
Регистрация: 03.02.2013
Сообщений: 311
05.02.2013, 20:53 2
Создаёте ёще один дополнительный массив для всех папок, в текущей. Сохраняете адреса всех папок в массив, затем в цикле вызываете рекурсивно, эту же самую функцию для каждой папки из массива.

Не по теме:

P.S. Старайтесь не делать каши из языков C и C++

0
0 / 0 / 1
Регистрация: 08.05.2012
Сообщений: 43
06.02.2013, 00:21  [ТС] 3
Разобрался:
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
hFileFind = FindFirstFile(tzMask, &find_data);
    if (hFileFind != INVALID_HANDLE_VALUE)
    {
        do
        {
            if ( (find_data.dwFileAttributes == FILE_ATTRIBUTE_NORMAL) || (find_data.dwFileAttributes ==FILE_ATTRIBUTE_ARCHIVE) )
            {
                _tprintf(TEXT("%s\n"),find_data.cFileName);
                strend = strpbrk(find_data.cFileName, ".");
                i = strcspn(find_data.cFileName, ".");
                lstrcpyn(str, find_data.cFileName, i+1);
                strrev(str);
                strcat(str, strend);
                //------RENAME----
                lstrcpy(oldName, "");
                lstrcpy(newName, "");
                wsprintf(oldName, "%s\\%s", dir, find_data.cFileName);
                wsprintf(newName, "%s\\%s", dir, str);
                rename(oldName, newName);
                //----------------
                strcat(str, "\n");
                lstrcat(res, str);
            }
            else
            {
                if ( (find_data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) &&
                    (!( (lstrcmp(find_data.cFileName, TEXT(".")) == 0) || 
                        (lstrcmp(find_data.cFileName, TEXT("..")) == 0) )) )
                {
                    TCHAR newdir[MAX_PATH];
                    wsprintf(newdir, TEXT("%s\\%s"), dir, find_data.cFileName);
                    MyScan(res, newdir);
                }
            }
        }while(FindNextFile(hFileFind, &find_data));
    }
0
06.02.2013, 00:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2013, 00:21
Помогаю со студенческими работами здесь

Поиск символа не могу переделать под поиск сочетания символов
Есть код программы на поиск и замену по одному символу.Не могу понять, как сделать код на поиск...

Поиск максимальных компонент в виде подрограмм, поиск значения функции
Очень нужна помощь, срочно. Хотя бы просто помогите с алгоритмом, код написать мб сам справлюсь....

Поиск символа в строке. Как осуществить поиск в обратном направлении
Всем доброго времени суток. Вопрос такой: как осуществить поиск в обратном направлении, т.е. я в...

Поиск второго пробела в строке, функции =ПОИСК или =НАЙТИ
Всем доброго времени суток. Есть строка ул. Северная д15 и в ней необходимо определить позицию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru