CDirScan Class Reference

#include <f32file.h>

Link against: efsrv.lib

class CDirScan : public CBase

Inherits from

  • CDirScan

    Detailed Description

    Scans a directory structure.

    The scan moves from directory to directory through the hierarchy, returning a list of the entries contained in each. The order in which the directories are scanned is determined by a sort key which is specified when setting up the scan. The base directory to be scanned and the entry types of interest must also be specified before performing the scan.

    This class is not intended for user derivation

    Member Enumeration Documentation

    Enum TScanDirection

    Defines the scan direction.

    EnumeratorValueDescription
    EScanUpTree

    Scan upwards from the lowest level directory in the hierarchy to the top level directory.

    EScanDownTree

    Scan downwards from the top level directory in the hierarchy to the bottom level directory.

    Constructor & Destructor Documentation

    CDirScan ( RFs & )

    CDirScan(RFs &aFs)[protected]

    ~CDirScan ( )

    IMPORT_C~CDirScan()

    Desctructor.

    Frees all resources owned by the object, prior to its destruction.

    Member Function Documentation

    AbbreviatedPath ( )

    IMPORT_C TPtrCAbbreviatedPath()

    Gets the abbreviated path of the entry currently being scanned.

    The abbreviated path is the path relative to the top level directory in the scan.

    Returns: A non modifiable pointer descriptor for the abbreviated path of the entry currently being scanned.

    FullPath ( )

    IMPORT_C TPtrCFullPath()

    Gets the full path of the entry currently being scanned.

    The full path includes the drive letter.

    Returns: A non modifiable pointer descriptor for the full path of the entry currently being scanned.

    NewL ( RFs & )

    IMPORT_C CDirScan *NewL(RFs &aFs)[static]

    Constructs and allocates memory for a new CDirScan object.

    ParameterDescription
    aFsThe file server session.

    Returns: A pointer to the new directory scan object.

    NewLC ( RFs & )

    IMPORT_C CDirScan *NewLC(RFs &aFs)[static]

    Constructs and allocates memory for a new CDirScan object, putting a pointer to the object onto the cleanup stack.

    ParameterDescription
    aFsThe file server session.

    Returns: A pointer to the new directory scan object.

    NextL ( CDir *& )

    IMPORT_C voidNextL(CDir *&aDirEntries)

    Scans the next directory entry in the structure.

    The order in which the structure is scanned is determined by the scan direction and the entry sort mask. These values are specified when setting up the scan. The type of entries retrieved by this function is determined by the entry attribute mask. This is also specified when setting up the scan.

    Notes:

    1. The function first sets aDirEntries to NULL, and then allocates memory for it before appending entries to it. Therefore, aDirEntries should have no memory allocated to it before this function is called, otherwise this memory will become orphaned.

    2. The caller of this function is responsible for deleting aDirEntries after the function has returned.

    ParameterDescription
    aDirEntriesOn return, a pointer to an array containing filtered entries from the next directory in the structure. NULL if there are no more directories in the structure.

    SetScanDataL ( const TDesC &, TUint, TUint, TScanDirection )

    IMPORT_C voidSetScanDataL(const TDesC &aMatchName,
    TUintanEntryAttMask,
    TUintanEntrySortMask,
    TScanDirectionaScanDir = EScanDownTree
    )

    Initialises the scan.

    This involves specifying:

    1. the directory at the top of the structure to be scanned

    2. a filter for the entry types of interest

    3. the order in which the entries in each directory in the structure are to be sorted

    4. the scan direction.

    Whether the scan direction is upwards or downwards, the directories that are scanned are those in the part of the hierarchy below the directory specified in aMatchName. By default, the scan direction is downwards. If the scan direction is set to CDirScan::EScanUpTree, then all branches of the tree are explored starting at the lowest level directory in the tree below aMatchName, and ending at aMatchName. This option is provided for deleting a directory structure.

    ParameterDescription
    aMatchNameThe top level directory for the scan. Any path components that are not specified here are taken from the session path. Note that the trailing backslash is required to specify the directory. I.e. path x:\dir1\dir2\ means that the scan will start from dir2, while path x:\dir1\dir2 assumes scan starting from x:\dir1\
    anEntryAttMaskA bit mask that filters the entry types which should be returned by NextL(). The mask works as follows: To match files only, specify KEntryAttNormal. To match both files and directories, specify KEntryAttDir. To match directories only, specify KEntryAttDir|KEntryAttMatchExclusive. To match files with a specific attribute, then OR the attribute involved with KEntryAttMatchExclusive. For example, to match read-only files, specify KEntryAttReadOnly|KEntryAttMatchExclusive. For more information, see KEntryAttNormal or the other file/directory attributes.
    anEntrySortMaskThe order in which the directories are scanned by NextL(). This flag is defined in TEntryKey.
    aScanDirThe direction of the scan. The default is downwards.