Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2011, 15:55   #1
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию Отображение списка файлов и папок.

Нужно отобразить(вывести в консоль) список файлов и папок, находящихся в определенной папке. С вводом пути папки не заморачиваемся - всё сделано. Как провернуть?
Диман56 вне форума Ответить с цитированием
Старый 05.11.2011, 18:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну через FindFirst например...
Или даже system("dir") может спасти.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2011, 20:17   #3
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

А где можно прочитать про system? Просто никак не придумаю запрос в гугле, ведь на это слово найдется бесчисленное количество ссылок.
Диман56 вне форума Ответить с цитированием
Старый 05.11.2011, 20:45   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да ну в MSDN... Даже не знаю что ответить-то...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2011, 17:48   #5
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

нашел по system то, что она может делать то же самое, что и консоль. То есть, отобразить список папок и файлов можно так
Код:
system("dir c:\\");
Но есть проблема: не получается передать путь. То есть, записать в программе путь и отобразить список файлов и папок-нет проблем. Но ввести путь и передать его функции-не получается. Как этот косяк устранить?

Последний раз редактировалось Диман56; 06.11.2011 в 17:56.
Диман56 вне форума Ответить с цитированием
Старый 06.11.2011, 20:14   #6
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Мучаюсь уже не знаю сколько. Вот код:
Код:
HANDLE Search;
WIN32_FIND_DATA hSearch;
Search=FindFirstFile(L"E:\\",&hSearch);
if (Search != INVALID_HANDLE_VALUE)
{
std::cout<< hSearch.cFileName;
FindClose(Search);
}
else
{
printf("Error!");
}
Пишет Error, хотя диск Е есть, и на нем есть файлы. Что не так?
Диман56 вне форума Ответить с цитированием
Старый 06.11.2011, 20:34   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

нет экранирования спец. символов, нет обработки списка директории, т.е. вы ничего не сделали... а так все правильно
p51x вне форума Ответить с цитированием
Старый 06.11.2011, 21:02   #8
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

А если по уму все делать, то как правильно?)
Диман56 вне форума Ответить с цитированием
Старый 07.11.2011, 12:37   #9
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Итак, дело сдвинулось с мертвой точки. Если делать вот так
Код:
HANDLE Search;
WIN32_FIND_DATA FileSearch;
Search=FindFirstFile(L"E:\\*.*", &FileSearch);
if(Search==INVALID_HANDLE_VALUE)
{
printf("Error!");
}
FindNextFile(Search, &FileSearch);
FindNextFile(Search, &FileSearch);
FindNextFile(Search, &FileSearch);
printf("\n%s", FileSearch.cFileName);
то выводится первая буква папки или файла. Тут вроде грабли попроще. Но где они зарыты?
Диман56 вне форума Ответить с цитированием
Старый 07.11.2011, 14:44   #10
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Помогите. Этот код выводит в столбик только первые буквы. А как весь путь вывести? Cout, puts что только я не пробовал.
Код:
HANDLE Search;
WIN32_FIND_DATA FileSearch;
Search=FindFirstFile(L"C:\\*.*", &FileSearch);
if(Search==INVALID_HANDLE_VALUE)
{
printf("Error!");
}
FindNextFile(Search, &FileSearch);
FindNextFile(Search, &FileSearch);
while(FindNextFile(Search,&FileSearch)!=FALSE)
{
FindNextFile(Search, &FileSearch);
printf("\n%s", FileSearch.cFileName);
}
FindClose(Search);
Диман56 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение списка файлов и папок pavellyba Общие вопросы Delphi 4 30.03.2011 22:55
запрет на отображение вложенных папок ilma55 PHP 6 18.01.2011 18:45
получения списка папок sqqa Общие вопросы Delphi 1 17.01.2010 20:54
Отображение скрытых файлов и папок и отображение розширения всех файлов beegl Общие вопросы Delphi 10 14.12.2008 22:02
как сохранить отображение папок на выносимых носителях. Alar Свободное общение 10 21.02.2007 20:51