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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
#1

Получение имен файлов директории в массив - C++

26.04.2011, 15:51. Просмотров 2936. Ответов 11
Метки нет (Все метки)

Здравствуйте. Нужна Ваша помощь в решении следующей задачи. Необходимо получить имена всех файлов находящихся в определенной директории и поместить имя каждого файла в отдельный индекс массива. То есть если в папке два файла к примеру first.txt, second.txt то первый индекс массива должен содержать "first.txt", второй индекс соответственно "second.txt".
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1600 / 1228 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
26.04.2011, 16:46     Получение имен файлов директории в массив #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<windows.h>
#include<stdio.h>
#include<string.h>
 
int main(){
    WIN32_FIND_DATA FindFileData;
    HANDLE hf=FindFirstFile("c:\\*", &FindFileData);
    CHAR fileNames[200][MAX_PATH];
    INT i=0;
    if (hf==INVALID_HANDLE_VALUE){puts("Path not found"); return 1;}
        do{
            strcpy(fileNames[i], FindFileData.cFileName);
            puts(fileNames[i]);
            ++i;
        }
        while (FindNextFile(hf,&FindFileData));
        FindClose(hf);
    return 0;
}
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
26.04.2011, 18:20  [ТС]     Получение имен файлов директории в массив #3
Огромнейшее спасибо , это как раз то что нужно. Все работает, вот только как бы сделать так что бы имена файлов в кирилице отображались корректно ? ( я на этапе освоения языка, по этому для меня все это немного сложновато)
asics
Freelance
Эксперт C++
 Аватар для asics
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
26.04.2011, 18:38     Получение имен файлов директории в массив #4
LedZeppelin, В свойствах окна консоли меняем шрифт на Lucida Conosle и добавляем в код эти строчки
C
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
26.04.2011, 18:43  [ТС]     Получение имен файлов директории в массив #5
Цитата Сообщение от asics Посмотреть сообщение
LedZeppelin, В свойствах окна консоли меняем шрифт на Lucida Conosle и добавляем в код эти строчки
C
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Спасибо, но все дело в том что я буду выводить данные не в консоль а в файл. Как сделать корректный вывод кирилицы в файл ?
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
26.04.2011, 18:45     Получение имен файлов директории в массив #6
asics, да если бы... На сколько знаю, русские имена винда в юникоде пишет, то бишь заморочки с мультибайтными символами...
asics
Freelance
Эксперт C++
 Аватар для asics
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
26.04.2011, 18:51     Получение имен файлов директории в массив #7
У меня все норм выводит
Миниатюры
Получение имен файлов директории в массив  
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
26.04.2011, 19:00  [ТС]     Получение имен файлов директории в массив #8
Цитата Сообщение от asics Посмотреть сообщение
У меня все норм выводит
Теперь и у меня нормальное отображение . Спасибо. (просто в папке были файлы изначально крякообразные, по этому сразу не понял что к чему)
asics
Freelance
Эксперт C++
 Аватар для asics
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
26.04.2011, 19:03     Получение имен файлов директории в массив #9
easybudda, Всмисле ? Так вроде работает...
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
26.04.2011, 19:09     Получение имен файлов директории в массив #10
Цитата Сообщение от asics Посмотреть сообщение
Так вроде работает.
Ну работает, и хорошо, дальше можно не заморачиваться. Я думал - всё хуже...
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
26.04.2011, 19:10  [ТС]     Получение имен файлов директории в массив #11
Есть ли другой способ вывода кириллицы в консоль , без изменения шрифта ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2011, 19:15     Получение имен файлов директории в массив
Еще ссылки по теме:

C++ Достать список файлов из директории
C++ Поиск файлов в директории
C++ Поиск файлов в директории
C++ Сосчитать количество файлов в директории
C++ Получить список файлов в директории

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

Или воспользуйтесь поиском по форуму:
asics
Freelance
Эксперт C++
 Аватар для asics
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
26.04.2011, 19:15     Получение имен файлов директории в массив #12
LedZeppelin, Русские шрифты в консоли
Yandex
Объявления
26.04.2011, 19:15     Получение имен файлов директории в массив
Ответ Создать тему
Опции темы

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