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

как мне обойти все подкаталоги данного каталога.? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 00:31     как мне обойти все подкаталоги данного каталога.? #1
помогите плз разобраться с директориями.
вот как мне обойти все подкаталоги данного каталога.?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2010, 00:31     как мне обойти все подкаталоги данного каталога.?
Посмотрите здесь:

Операции создания каталога, изменения временного каталога, удаление файла и директории C++
C++ перации создания каталога, изменения временного каталога, удаление файла и директории (рекурсивно)
Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все элементы данного массива с четными номерами, во второ C++
Обойти конём все поля шахматной доски C++
C++ Определить последовательность ходов, которая позволит обойти все поля и вернуться на исходную.
Как обойти рекурсию? C++
Обойти по спирали все элементы матрицы 6x6 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
10.05.2010, 00:34     как мне обойти все подкаталоги данного каталога.? #2
genius5, открыл каталог, прочитал файлы, если среди них каталог, то к пути прибавил его имя и в него вошел. И так рекурсивно по всему дереву. Это тривиально.
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 00:43  [ТС]     как мне обойти все подкаталоги данного каталога.? #3
легко сказать я еще не работад с каталогами,многого не знаю.
ну ету часть с деревьями можно поподробнее?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
10.05.2010, 00:46     как мне обойти все подкаталоги данного каталога.? #4
зависить от системы и используемых средств - windows, linux, winapi, mfc, qt..
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 00:57  [ТС]     как мне обойти все подкаталоги данного каталога.? #5
windows
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
10.05.2010, 01:01     как мне обойти все подкаталоги данного каталога.? #6
Цитата Сообщение от genius5 Посмотреть сообщение
ну ету часть с деревьями можно поподробнее?
Что же все разжевывать-то...
Вот у тебя директория dir1, прочитал, какие файлы в ней. взял тип файла file1 круто, обычный файл. Взял типа файла dir2, опана, директория, значит идем в dir1\\dir2.
Функции для операций с файлами можно найти в документации по winapi. Может, в вантузе есть аналог nftw, но я о нем не слышал
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 01:07  [ТС]     как мне обойти все подкаталоги данного каталога.? #7
а как потом назад вернуться?
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
10.05.2010, 01:09     как мне обойти все подкаталоги данного каталога.? #8
genius5, функция должна быть рекурсивной. Выполнение кода само вернется назад, когда завершатся функции, для подкаталогов. Рекурсия.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.05.2010, 01:40     как мне обойти все подкаталоги данного каталога.? #9
вай-вай-вай
уже бы в гугле код нарыл
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 11:11  [ТС]     как мне обойти все подкаталоги данного каталога.? #10
тада скинь плиз ссылку.

Добавлено через 8 часов 18 минут
ну никак не получается
напишите эту часть проги плз

Добавлено через 1 час 0 минут
аууууу
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
10.05.2010, 18:27     как мне обойти все подкаталоги данного каталога.? #11
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
#include <iostream>
#include <string>
#include <windows.h>
 
void func_(const std::string &dir, const std::string &r){
     static std::string _dir;
    _dir = dir + r;
 
    WIN32_FIND_DATA FindFileData;
    HANDLE hFind = FindFirstFile(_dir.c_str(), &FindFileData);
 
    FindNextFile(hFind, &FindFileData); // 
 
    while(FindNextFile(hFind, &FindFileData))
    {
        if(FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY){
            _dir = dir + FindFileData.cFileName + "\\";
            std::cout << "Folder: " << _dir << std::endl;
            func_(_dir.c_str(), r);
        } else 
            std::cout << "File: " << FindFileData.cFileName << std::endl;
    }
 
    FindClose(hFind);
}
 
int main(){
 
    func_("C:\\", "*.*");
    return 0;
}
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 18:39  [ТС]     как мне обойти все подкаталоги данного каталога.? #12
а на С это как будет выглядеть?
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
10.05.2010, 18:41     как мне обойти все подкаталоги данного каталога.? #13
Цитата Сообщение от genius5 Посмотреть сообщение
а на С это как будет выглядеть?
примерно также...
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 18:44  [ТС]     как мне обойти все подкаталоги данного каталога.? #14
а комменты можно?все еще не все понимаю.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
10.05.2010, 18:53     как мне обойти все подкаталоги данного каталога.? #15
Цитата Сообщение от genius5 Посмотреть сообщение
а комменты можно?все еще не все понимаю.
так три строчки кода.. что имено не понятно?
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 19:11  [ТС]     как мне обойти все подкаталоги данного каталога.? #16
у меня вопрос
как в С определить это папка или нет?
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
10.05.2010, 19:21     как мне обойти все подкаталоги данного каталога.? #17
Вот на С
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
#include <windows.h>
#include <stdio.h>
 
void func_(char *dir, char *r){
    char _dir[MAX_PATH];
    strcpy(_dir, dir);
    strcat(_dir, r);
 
    WIN32_FIND_DATA FindFileData;
    HANDLE hFind = FindFirstFile(_dir, &FindFileData);
 
    FindNextFile(hFind, &FindFileData); // 
 
    while(FindNextFile(hFind, &FindFileData))
    {
        if(FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY){ /*Проверка на то что это папка*/
            strcpy(_dir, dir);
            strcat(_dir, FindFileData.cFileName);
            strcat(_dir, "\\");
            printf("Folder: %s\n", _dir);
 
            func_(_dir, r);
 
        } else 
            printf("File: %s\n", FindFileData.cFileName);
    }
 
    FindClose(hFind);
}
 
int main(){
 
    func_("C:\\", "*.*");
    return 0;
}
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 19:26  [ТС]     как мне обойти все подкаталоги данного каталога.? #18
не пашет ошибки выдает,ну так как в С определить это папка или нет?
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.05.2010, 19:32     как мне обойти все подкаталоги данного каталога.? #19
ISergey, ты не устал?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2010, 19:34     как мне обойти все подкаталоги данного каталога.?
Еще ссылки по теме:

Начиная с центра, обойти по спирали все элементы квадратной матрицы C++
C++ Сформировать два множества, первое содержит все простые числа из данного множества, второе - все составные
Начиная с центра, обойти по спирали все элементы квадратной матрицы, распечатывая их в порядке обхода C++
C++ Начиная от центра, обойти по спирали все элементы квадратной матрицы
C++ Обойти все элементы вектора

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

Или воспользуйтесь поиском по форуму:
genius5
 Аватар для genius5
114 / 36 / 2
Регистрация: 13.12.2009
Сообщений: 223
10.05.2010, 19:34  [ТС]     как мне обойти все подкаталоги данного каталога.? #20
)
)))надеюсь нет)
Yandex
Объявления
10.05.2010, 19:34     как мне обойти все подкаталоги данного каталога.?
Ответ Создать тему
Опции темы

Текущее время: 10:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru