Как получить список папок в этой папке?

Как получить список папок в этой папке?

7
задан SomeUser 10 February 2010 в 19:52
поделиться

4 ответа

Если вы не можете использовать .NET и управляемый код, воспользуйтесь Win32 api

Вот пример , который вы можете изменить, чтобы получить только папки.

(В основном следующая проверка :)

...
  TCHAR szDir = _T("c:\\"); // or wherever.
  HANDLE hFind = FindFirstFile(szDir, &ffd);
...
  do {
      if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
      {
         // your code on 'ffd'
      }
  } while (FindNextFile(hFind, &ffd) != 0);
8
ответ дан 6 December 2019 в 08:14
поделиться

FindFirstFileEx+FindExSearchLimitToDirectories.

WIN32_FIND_DATA fi;
HANDLE h = FindFirstFileEx(
        dir,
        FindExInfoStandard,
        &fi,
        FindExSearchLimitToDirectories,
        NULL,
        0);
if (h != INVALID_HANDLE_VALUE) {
    do {
        if (fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
            printf("%s\n", fi.cFileName);
    } while (FindNextFile(h, &fi));
    FindClose(h);
}
10
ответ дан 6 December 2019 в 08:14
поделиться

Вы можете использовать Boost

Или, если вы не хотите Boost, вы можете проверить эту тему, где обсуждаются альтернативные варианты. http://www.gamedev.net/community/forums/topic.asp?topic_id=523375

3
ответ дан 6 December 2019 в 08:14
поделиться

Для лучшей переносимости используйте библиотеку boost filesystem . Используйте opendir () / readdir () и его друзей для систем на базе UNIX.

1
ответ дан 6 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: