Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как получить из папки имена файлов

249
17 декабря 2005 года
DissDoc
639 / / 01.10.2004
Лазил по форуму - ниче путного не нашел. У меня вот какая ситуация.
1)Выбираю директорию
2) В директории лежат папки и файлы
3) Мне нужно получить имена файлов
4) Затем вниз по дереву залезть в папки и получить оттуда снова файлы

Короче, задача такая:

взяли адрес директории;
залезли в директорию;
если файл
{
взяли имя файла;
}
иначе если директория
{
получили имя папки;
залезли в директорию;
}
//-----------------
Ну соответственно рекурсия здесь.. как рекурсию организовать я знаю... Не знаю саму работу алгоритма файл-директория.
443
17 декабря 2005 года
REmindER
292 / / 23.03.2003
Вот нашел в какой-то своей старой программке:

Код:
void __fastcall ScanDirectory(LPCTSTR Path, int Text, int Dpth)
{
if(Dpth == 0) return;

WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(Path, &wfd);

Text --;

if(hFind != INVALID_HANDLE_VALUE)
  {
  do
    {
    if(wfd.dwFileAttributes & Mask)
      {
      if(wfd.cFileName[0] != '.')
        {
        strcpy((char*) &Path[Text], wfd.cFileName);
        strcpy((char*) &Path[Text + strlen(wfd.cFileName)], TEXT("/*" + (char) 0));

        ScanDirectory(Path, Text + strlen(wfd.cFileName) + 2, Dpth - 1);
        };
      };
    } while(FindNextFile(hFind, &wfd) != 0);
    FindClose(hFind);
  };
}


Path - указатель на строку вида "c:/directory/*"+\x0 (буфер строки должен быть достаточного размера - используется функцией);
Text - ее длина, хотя может вычисляться налету;
Dpth - глубина сканирования (-1 для любой);
Mask - 63 (any_file)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог