Функция pf_readdir читает элементы в директории.
FRESULT pf_readdir (
DIR* DirObject, /* Указатель на открытый объект директории */
FILINFO* FileInfo /* Указатель на информационную структуру файла */
);
Параметры
- DirObject
- Указатель на открытый объект директории.
- FileInfo
- Указатель на информационную структуру файла (file information structure), в которую будет сохранена информация о прочитанном элементе директории.
Возвращаемые значения
- FR_OK (0)
- Функция завершилась успешно.
- FR_DISK_ERR
- Функция завершилась неудачно из за ошибки в работе диска, испорченной структуры FAT или из-за внутренней ошибки.
- FR_NOT_OPENED
- Объект директории не был открыт.
Описание
Функция pf_readdir читает элементы (файлы и папки), находящиеся в указанной директории, последовательно друг за другом. Все элементы директории могут быть прочитаны повторяющимися вызовами функции pf_readdir. Когда все элементы директории прочитаны, и в директории больше нет элементов, функция возвратит null string в поле f_name[] без возврата какой-либо ошибки. Когда в параметре FileInfo передан нулевой указатель (null pointer), индекс чтения директории будет сброшен в начало (т. е. вызовы pf_readdir будут заново читать элементы директории).
Sample Code
FRESULT scan_files (char* path)
{
FRESULT res;
FILINFO fno;
DIR dir;
int i;
res = pf_opendir(&dir, path);
if (res == FR_OK) {
i = strlen(path);
for (;;) {
res = pf_readdir(&dir, &fno);
if (res != FR_OK || fno.fname[0] == 0) break;
if (fno.fattrib & AM_DIR) {
sprintf(&path[i], "/%s", fno.fname);
res = scan_files(path);
if (res != FR_OK) break;
path[i] = 0;
} else {
printf("%s/%s\n", path, fno.fname);
}
}
}
return res;
}
Краткая информация (QuickInfo)
Функция доступна, когда _USE_DIR == 1.
См. также
pf_opendir, FILINFO, DIR