Как извлечь свойства каталога в Windows? - PullRequest
2 голосов
/ 25 октября 2011

Возвращает ли какая-либо функция, сколько файлов находится в каталоге?

Является ли единственный способ перебирать все файлы?

(Например, когда вы щелкаете правой кнопкой мыши каталог в Windows, в нем выводится: 7 files in directory. Есть ли способ извлечь эту информацию? Как «получить» эту информацию?)

Спасибо.

Ответы [ 2 ]

4 голосов
/ 25 октября 2011

Я не знаю, есть ли лучший способ, но я использую FindFirstFile / FindNextFile для этого (некоторая проверка ошибок удалена для ясности):

WIN32_FIND_DATA ffd;
HANDLE hFind = INVALID_HANDLE_VALUE;
_TCHAR szDir[] = _T("somedir\\*");

hFind = FindFirstFile(szDir, &ffd);

do
{
    if((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !(!_tcscmp(ffd.cFileName,_T(".")) || !_tcscmp(ffd.cFileName, _T(".."))))
    {
        // This is a directory
    }
}
while (FindNextFile(hFind, &ffd) != 0);
1 голос
/ 25 октября 2011

Вы можете использовать функции FindFirstFile / FindNextFile Win32 API для перебора файлов в каталоге и подсчета их количества.Нет единой статистики, которая поддерживается на уровне каталога.

Проводник Windows делает что-то подобное на самом низком уровне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...