ReadDirectory

Reads the next entry from a directory.

Synopsis

int32 ReadDirectory( Directory *dir, DirectoryEntry *de )

Description

This routine reads the next entry from the specified directory. It stores the information from the directory entry into the supplied DirectoryEntry structure. You can then examine the DirectoryEntry structure for information about the entry.

The most interesting fields in the DirectoryEntry structure are:

de_FileName
The name of the entry.
de_Flags
This contains a series of bit flags that describe characteristics of the entry. Flags of interest are FILE_IS_DIRECTORY, which indicates the entry is a nested directory and FILE_IS_READONLY, which tells you the file cannot be written to.
de_Type
This is currently one of FILE_TYPE_DIRECTORY, FILE_TYPE_LABEL, or FILE_TYPE_CATAPULT.
de_BlockSize
This is the size in bytes of the blocks when reading this entry.
de_ByteCount
The logical count of the number of useful bytes within the blocks allocated for this file.
de_BlockCount
The number of blocks allocated for this file.
You can use OpenDirectoryPath() and ReadDirectory() to scan the list of mounted file systems. This is done by supplying a path of "/" to OpenDirectoryPath(). The entries that ReadDirectory() returns will correspond to all of the mounted file systems. You can then look at the de_Flags field to determine if a file system is readable or not.

Arguments

dir
A pointer to the directory structure for the directory.
de
A pointer to a DirectoryEntry structure in which to receive the information about the next directory entry.

Return Value

This function returns zero if successful or a negative error code if an error (such as end-of-directory) occurs.

Implementation

Folio call implemented in file folio V20.

Associated Files

directoryfunctions.h, filesystem.lib

See Also

OpenDirectoryItem(), OpenDirectoryPath()