Форум программистов, компьютерный форум, киберфорум
Наши страницы

Рекурсивная функция вывода всех файлов и директорий - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализация md5() http://www.cyberforum.ru/cpp-beginners/thread778387.html
Как мне md5 хеш строки char получить? вон как просто в пхп - md5($string) гугл весь перерыл ничего нормального не нашел.. как реализовать?
C++ Определить размер массива по указателю Собственно вопрос в следующем: можно ли определить размер выделенного динамически массива по указателю на область памяти? int *ptr = new int; int size = getsize(ptr); http://www.cyberforum.ru/cpp-beginners/thread778365.html
с чего начать обучение на С++ C++
с чего начать обучение в С++ самостоятельно?
Thread class C++
В библиотеке SDL есть функция: SDL_Thread *SDL_CreateThread(int (*fn)(void *), void *data); Эта функция запускает в отдельном потоке переданную ей функцию, и возвращает указатель на поток. Но не...
C++ Создание бинарного дерева и сортировка в нем масива http://www.cyberforum.ru/cpp-beginners/thread778337.html
Здесь я привел прогу для того чтобы создавать деревья и с их помощью сортировать масив. Но я не знаю как отсортированый список вернуть назад с деревьев в масив. Что здесь надо сделать подскажите....
C++ While (нечетные целые числа из диапазона) 1.Напишите программу, которая бы выводила на экран только нечетные целые числа из диапазона от 0 до, указанного пользователем, числа. подробнее

Показать сообщение отдельно
jon_illien
3 / 3 / 1
Регистрация: 14.08.2012
Сообщений: 78

Рекурсивная функция вывода всех файлов и директорий - C++

03.02.2013, 22:45. Просмотров 803. Ответов 4
Метки (Все метки)

функция ищет все файлы включая директории с набором др. файлов и директорий при этом выводит их на экран.
Вместо того, чтобы вывести файлы директории, бесконечно выводит точку. посмотрите пожалуйста) :

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
int SearchAll(char *path)                        //приходит имя диска (f:\) и в последствии добавляется маска "*"
{
    char* temp_path = new char[strlen(path) + 1];       //добавляет к пути маску "*"
    strcpy(temp_path, path);                            //для поиска всех файлов
    strcat(temp_path, "*");                             //
 
    _finddata_t* fileinfo = new _finddata_t;            //указатель на объект структуры с информацией на файл
    long done;                                          //уникальный номер группы файлов в памяти
    long there_is_a_file;                               //для проверки: существует следующий файл?
    int count = 0;                                      //счетчик файлов
 
    done = _findfirst(temp_path, fileinfo);             //поиск файлов по указанному пути и маске, запись в структуру
    there_is_a_file = done;                             //fileinfo информации о первом найденном файле 
    
    while(there_is_a_file != -1)                        //если в списке есть файл
    {
        if(fileinfo->attrib == _A_SUBDIR)               //если это директория
        {
            cout << fileinfo->name << endl;
 
            char* transition_path = new char[strlen(path) + 4 + strlen(fileinfo->name)];   4 - две пары слешей 
            
            strcpy(transition_path, path);
            strcat(transition_path, "\\");
            strcat(transition_path, fileinfo->name);
            strcat(transition_path, "\\");
 
            count += SearchAll(transition_path);
            count++;
 
            delete []transition_path;
        }
        else                                                                          //соответственно не директория
        {
            cout << fileinfo->name << endl;
            count++;
        }
    }
 
    delete fileinfo;
    _findclose(done);
    
    return count;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.