FSOpenDir

Syntax

#include <cafe/fs.h>

FSStatus FSOpenDir(
                FSClient                        *client,
                FSCmdBlock                      *block,
                const char                      *path,
                FSDirHandle                     *dirHandle,
                FSRetFlag                       errHandling
                );
FSStatus FSOpenDirAsync(
                FSClient                        *client,
                FSCmdBlock                      *block,
                const char                      *path,
                FSDirHandle                     *dirHandle,
                FSRetFlag                       errHandling,
                const FSAsyncParams             *asyncParams
                );

Parameters

client Pointer to the client buffer.
block Command block.
path File path to open. Length must be less than FS_MAX_ARGPATH_SIZE.
dirHandle Pointer to the handle of directory stream associated to the directory to be opened.
errHandling Auto error handling flag. Only indicated errors are returned.
asyncParams (Async API only) Notification parameters for an asynchronous call.

Return Values

Sync API : Return values / Async API: Callback return values

FS_STATUS_OK Successfully completed.
FS_STATUS_CANCELED The command was canceled.
FS_STATUS_MAX System has too many directory points to create more.
FS_STATUS_NOT_FOUND Target not found.
FS_STATUS_NOT_DIR Specified path is not a directory.
FS_STATUS_PERMISSION_ERROR The caller does not have correct access permission.
FS_STATUS_MEDIA_NOT_READY (Only for manually mounted devices) Media is not present.
FS_STATUS_MEDIA_ERROR (Only for manually mounted devices) Media is in some inaccessible condition.
FS_STATUS_DATA_CORRUPTED (Only for manually mounted devices) The data is corrupted beyond repair. The volume needs format.

Async API: Immediate return values

FS_STATUS_OK Successfully issued request.
FS_STATUS_FATAL_ERROR The argument is invalid.

Description

Open directory designated by path and creates directory stream associated with it. Position of the directory stream is set to the head.

Both a sync and async style API are provided. To use the async API, set the user callback and parameters in asyncParams. For more information, see FSAsyncParams. The generated directory handle is stored in dirHandle when completed.

The generated directory handle is positive value (>0) if the function succeeds. Otherwise, the handle value is FS_INVALID_HANDLE_VALUE. The invalid handle value is not necessary to close.

Do Not Call From

FSOpenDir

Thread that displays graphics Do not call this function from a thread that displays graphics. This function may block indefinitely in error cases and the application must be able to display appropriate messages.
Thread that handles system messages Do not call this function from a thread that handles system messages. This function may block indefinitely in error cases and the application must be able to handle system events such as shutdown.
Callbacks Do not call this function from any callback function.
Interrupt handler Do not call this function from any interrupt handler.
Exception handler Do not call this function from any exception handler.

FSOpenDirAsync

None.

See Also

File/Directory operations
FSReadDir
FSRewindDir
FSCloseDir

Revision History

2014/09/16 Added "Thread that displays graphics" and "Thread that handles system messages" to "Do not call from".
2013/05/23 Added FS_STATUS_DATA_CORRUPTED to return values.
2013/05/20 Added FS_STATUS_MEDIA_NOT_READY to return values.
2013/05/08 Automated cleanup pass.
2013/03/18 Added description about the generated directory handle.
2013/01/10 Added "Callback" to "Do not call from".
2012/07/19 Readability and correctness cleanup.
2012/02/20 Initial version.
2010/03/30 Fixed type name FSNotificationParams -> FSAsyncParams.


CONFIDENTIAL