Войти
Программирование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