ПрограммированиеFAQ

Как перебрать все файлы, находящиеся в определенной директории

При работе с файлами в строке файлового пути используются специальные обозначения, чтобы обращаться к файлам не только по их имени. Например, первый файл в любом каталоге (кроме корня) это ссылка на самого себя. Обозначается он точкой ("."). Второй файл — это ссылка на родительский каталог, обозначается он двумя точками ("..").

char path[MAX_PATH] = "C:\\Games\\*.*"; //путь до папки, в которой нужно перебрать файлы
// (в данном случае это [i]"Games"[/i])
WIN32_FIND_DATA FindData;
HANDLE Handle;
Handle = FindFirstFile(path, &FindData);//ищем первый файл

Итак, мы нашли первый файл. Ищем остальные.

FindNextFile(Handle, &FindData);//находим ссылку на родительский каталог
int i=0;
while( FindNextFile(Handle, &FindData) )//и только теперь проходим по нужным нам файлам
{
//производим необходимые операции, например запоминаем имена всех файлов в директории
  MyNameArray[i] = FindData.cFileName;
  i++;
}

Примечание: ссылки на родительский каталог не будет только в корне.

15 августа 2007 (Обновление: 11 мар 2024)