ff_stdio.h
int ff_findnext( FF_FindData_t *pxFindData );
Finds the next file or directory within an embedded FAT file system
directory. ff_findnext() can only be called after first calling
ff_findfirst(). ff_findfirst() finds the
first file in the directory, ff_findnext() then finds all subsequent files in
the directory.
The same instance of the FF_FindData_t object must be passed into ff_findnext()
as was passed into ff_findfirst().
FF_FindData_t contains the fields shown in the table below:
Field
|
Description
|
pcFileName
|
The name of the file
|
ulFileSize
|
The length of the file in bytes
|
ucAttributes
|
The file's attributes, which is a bitwise OR of the following
bit definitions:
-
FF_FAT_ATTR_READONLY
-
FF_FAT_ATTR_HIDDEN
-
FF_FAT_ATTR_SYSTEM
-
FF_FAT_ATTR_DIR (directory)
|
Parameters:
pxFindData
|
A pointer to a structure that is used to store information
required to scan a directory, and to pass out details of
the files contained in the directory.
|
Returns:
If a file or directory was found then 0 is returned. If an error occurs
a non-zero value is returned.
Example usage:
void DIRCommand( const char *pcDirectoryToScan )
{
FF_FindData_t *pxFindStruct;
const char *pcAttrib;
*pcWritableFile = "writable file",
*pcReadOnlyFile = "read only file",
*pcDirectory = "directory";
pxFindStruct = ( FF_FindData_t * ) pvPortMalloc( sizeof( FF_FindData_t ) );
memset( pxFindStruct, 0x00, sizeof( FF_FindData_t ) );
if( ff_findfirst( pcDirectoryToScan, pxFindStruct ) == 0 )
{
do
{
if( ( pxFindStruct->ucAttributes & FF_FAT_ATTR_DIR ) != 0 )
{
pcAttrib = pcDirectory;
}
else if( pxFindStruct->ucAttributes & FF_FAT_ATTR_READONLY )
{
pcAttrib = pcReadOnlyFile;
}
else
{
pcAttrib = pcWritableFile;
}
FreeRTOS_printf( ( "%s [%s] [size=%d]", pxFindStruct->pcFileName,
pcAttrib,
pxFindStruct->ulFileSize ) );
} while( ff_findnext( pxFindStruct ) == 0 );
}
vPortFree( pxFindStruct );
}
Example use of the ff_findfirst() API function create a directory listing
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.