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