«STAR WARS REIMAGINED: african totem C3PO» © 2016, Евгений 
CGtalk.by CG Award 2016: «STAR WARS REIMAGINED: african totem C3PO», Евгений
   
Главная Форумы Галерея Теория Конкурсы Вакансии
Назад   CGtalk.by > Программирование > Программирование
Новые сообщения Зарегистрироваться

 
Дополнительно Режимы отображения Ответить
Старый 03.06.2009, 16:59   #1
Az
Участник
 
Az's Avatar
 
Сообщений: 685
Вопрос про С - получить список файлов в папке

Как получить список файлов и каталогов в текущем каталоге (типа консольной комманды DIR) в С. Ретурн желателен в виде последовательности символов...
Чё-та я в МСДНе закопался


We do what we must
Because we can!
Az офлайн   Ответить с цитированием
Старый 03.06.2009, 20:31   #2
Dencraft
Участник
 
Сообщений: 133
Ответ на: Вопрос про С - получить список файлов в папке

Нужно использовать рекурсивный вызов функции, которая шарит по всем папкам. Я что-то писал подобное, и где-то примерчик есть, могу поискать.
Алгоритм простой:
п.1 ищешь в текущей папке по (FindFirstFile/FindNextFile) файлы, если нашел файл - отправляешь в список, если нашел папку заходишь в нее и опять возвращяешься в пункт 1. Если ни папок, ни файлов нет - выход из функции.
Dencraft офлайн   Ответить с цитированием
Старый 03.06.2009, 20:41   #3
Dencraft
Участник
 
Сообщений: 133
Ответ на: Вопрос про С - получить список файлов в папке

Вот еще нашел http://www.sources.ru/cpp/faqs/51.htm
Dencraft офлайн   Ответить с цитированием
Старый 03.06.2009, 20:45   #4
Az
Участник
 
Az's Avatar
 
Сообщений: 685
Ответ на: Вопрос про С - получить список файлов в папке

о, спасиб!


We do what we must
Because we can!
Az офлайн   Ответить с цитированием
Старый 07.06.2009, 20:16   #5
Az
Участник
 
Az's Avatar
 
Сообщений: 685
Ответ на: Вопрос про С - получить список файлов в папке

Так... ещё один вопрос
В функцию передаётся параметр
Цитата:
LPTSTR param = TEXT("some text");
Также, к этому параметру есть необходимость присоединить введённое из консоли значение (char)
Как? strcat(str1, str2) вылетает при исполнении...


We do what we must
Because we can!
Az офлайн   Ответить с цитированием
Старый 08.06.2009, 02:39   #6
Dencraft
Участник
 
Сообщений: 133
Ответ на: Вопрос про С - получить список файлов в папке

У тебя в строчке
Код:
LPTSTR param = TEXT("some text");
создается указатель на размещенную в памяти строчку "some text". Размер под хранение этой строчки, выделен при инициализации строки. При выполнении функции
Код:
strcat(param, str2)
ты добавляешь к param строку str2, но выделенного места не хватает для добавления str2, т.к. размер памяти выделен только для хранения строки "some text"

Можешь попробовать так:
Код:
 
TCHAR szStr[MAX_PATH]={0};
TCHAR szParam[MAX_PATH]={0};

strcpy(szStr, TEXT("String"));
strcpy(szParam, TEXT("Param"));

strcat(szStr, szParam);
MAX_PATH уже определен и обычно равен = 240,
{0} - обнуляет массив при инициализации.
Dencraft офлайн   Ответить с цитированием
Старый 08.06.2009, 10:09   #7
Az
Участник
 
Az's Avatar
 
Сообщений: 685
Ответ на: Вопрос про С - получить список файлов в папке

Спасибо огромное!
Наконец-то всё заработало.... всё-таки далёк я по душе от системного программирования, хотя и довольно интересное это дело.


We do what we must
Because we can!
Az офлайн   Ответить с цитированием
 
Ответить


Дополнительно
Режимы отображения

Правила создания сообщений
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Вкл
[IMG] Вкл
HTML Выкл

Быстрый переход

Polygon.by. Учебно-практический центр компьютерной графики.

Онлайн журнал о магии компьютерной графики и цифрового искусства «Magic CG»
Пакет инструментов для обеспечения качества 3D-контента для игр
Белорусское Meetup Комьюнити
» Декабрь 2018
В П В C Ч П С
252627282930 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 12345

Текущее время 13:04 (GMT +4)


Powered by vBadvanced CMPS v3.0 RC1
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Хостинг и облачные решения — Active Technologies

Все права защищены © 2006 — 2014, CGtalk.by