class PDirectory

Class to represent a directory in the operating system file system.

Inheritance:


Public Methods

[more] Construction
[more] Access functions
[more] File system functions
[more] Directory listing functions

Protected Fields

[more]int scanMask
Mask of file types that the directory scan will return


Inherited from PFilePathString:


Inherited from PString:

Public Methods

Overrides from class PObject

Overrides from class PContainer

Size/Length functions

Concatenation operators *

Comparison operators

Search & replace functions

Sub-string functions

Conversion functions


Inherited from PCharArray:


Inherited from PBaseArray:

Public Methods

New functions for class


Inherited from PAbstractArray:

Protected Fields

oPINDEX elementSize
ochar* theArray
oBOOL allocatedDynamically


Inherited from PContainer:

Public Methods

Common functions for containers

Protected Methods

ovirtual void DestroyContents()
ovirtual void AssignContents(const PContainer & c)
ovoid CopyContents(const PContainer & c)
ovoid CloneContents(const PContainer* src)
ovoid Destruct()


Inherited from PObject:

Public Methods

Run Time Type functions

I/O functions

Public Members

Comparison functions


Documentation

Class to represent a directory in the operating system file system. A directory is a special file that contains a list of file paths.

The directory paths are highly platform dependent and a minimum number of assumptions should be made.

The PDirectory object is a string consisting of a possible volume name, and a series directory names in the path from the volumes root to the directory that the object represents. Each directory is separated by the platform dependent separator character which is defined by the PDIR_SEPARATOR macro. The path always has a trailing separator.

Some platforms allow more than one character to act as a directory separator so when doing any processing the IsSeparator() function should be used to determine if a character is a possible separator.

The directory may be opened to gain access to the list of files that it contains. Note that the directory does not contain the "." and ".." entries that some platforms support.

The ancestor class is dependent on the platform. For file systems that are case sensitive, eg Unix, the ancestor is PString. For other platforms, the ancestor class is PCaselessString.

o Construction

o PDirectory()
Create a directory object of the current working directory

o PDirectory( const char* cpathname )
Create a directory object of the specified directory. The pathname parameter may be a relative directory which is made absolute by the creation of the PDirectory object.
Parameters:
cpathname - Directory path name for new object.

o PDirectory( const PString & pathname )
Create a directory object of the specified directory. The pathname parameter may be a relative directory which is made absolute by the creation of the PDirectory object.
Parameters:
pathname - Directory path name for new object.

oPDirectory& operator=( const PString & pathname )
Set the directory to the specified path.
Parameters:
pathname - Directory path name for new object.

oPDirectory& operator=( const char* cpathname )
Set the directory to the specified path.
Parameters:
cpathname - Directory path name for new object.

o Access functions

oPDirectory GetParent() const
Get the directory for the parent to the current directory. If the directory is already the root directory it returns the root directory again.

Returns:
parent directory.

oPFilePathString GetVolume() const
Get the volume name that the directory is in.

This is platform dependent, for example for MS-DOS it is the 11 character volume name for the drive, eg "DOS_DISK", and for Macintosh it is the disks volume name eg "Untitled". For a unix platform it is the device name for the file system eg "/dev/sda1".

Returns:
string for the directory volume.

oBOOL IsRoot() const
Determine if the directory is the root directory of a volume.

Returns:
TRUE if the object is a root directory.

oPDirectory GetRoot() const
Get the root directory of a volume.

Returns:
root directory.

oPStringArray GetPath() const
Get the directory path as an array of strings. The first element in the array is the volume string, eg under Win32 it is "c:" or "
machine", while under unix it is an empty string.

ostatic PINLINE BOOL IsSeparator( char ch )
Determine if the character ch is a directory path separator.

Parameters:
- ch Character to check as being a separator.
Returns:
TRUE if may be used to separate directories in a path.

oBOOL GetVolumeSpace( PInt64 & total, PInt64 & free, DWORD & clusterSize ) const
Determine the total number of bytes and number of bytes free on the volume that this directory is contained on.

Note that the free space will be the physical limit and if user quotas are in force by the operating system, the use may not actually be able to use all of these bytes.

Parameters:
total - Total number of bytes available on volume
free - Number of bytes unused on the volume
clusterSize - "Quantisation factor" in bytes for files on volume
Returns:
TRUE if the information could be determined.

o File system functions

oBOOL Exists() const
Test for if the directory exists.

Returns:
TRUE if directory exists.

ostatic BOOL Exists( const PString & path )
Test for if the specified directory exists.

Parameters:
- path Directory file path.
Returns:
TRUE if directory exists.

oBOOL Change() const
Change the current working directory to the objects location.

Returns:
TRUE if current working directory was changed.

ostatic BOOL Change( const PString & path )
Change the current working directory to that specified.

Parameters:
- path Directory file path.
Returns:
TRUE if current working directory was changed.

oBOOL Create( int perm = PFileInfo::DefaultDirPerms ) const
Create a new directory with the specified permissions.

Returns:
TRUE if directory created.

ostatic BOOL Create( const PString & p, int perm = PFileInfo::DefaultDirPerms )
Create a new directory as specified with the specified permissions.

Parameters:
p - Directory file path.
perm - Permission on new directory.
Returns:
TRUE if directory created.

oBOOL Remove()
Delete the directory.

Returns:
TRUE if directory was deleted.

ostatic BOOL Remove( const PString & path )
Delete the specified directory.

Parameters:
- path Directory file path.
Returns:
TRUE if directory was deleted.

o Directory listing functions

oBOOL Open( int scanMask = PFileInfo::AllFiles )
Open the directory for scanning its list of files. Once opened the GetEntryName() function may be used to get the current directory entry and the Next() function used to move to the next directory entry.

Only files that are of a type that is specified in the mask will be returned.

Note that the directory scan will not return the "." and ".." entries that some platforms support.

Parameters:
- scanMask Mask of files to provide.
Returns:
TRUE if directory was successfully opened, and there was at least one file in it of the specified types.

oBOOL Restart( int scanMask = PFileInfo::AllFiles )
Restart file list scan from the beginning of directory. This is similar to the Open() command but does not require that the directory be closed (using Close()) first.

Only files that are of a type that is specified in the mask will be returned.

Note that the directory scan will not return the "." and ".." entries that some platforms support.

Parameters:
- scanMask Mask of files to provide.
Returns:
TRUE if directory was successfully opened, and there was at least one file in it of the specified types.

oBOOL Next()
Move to the next file in the directory scan.

Only files that are of a type that is specified in the mask passed to the Open() or Restart() functions will be returned.

Note that the directory scan will not return the "." and ".." entries that some platforms support.

Returns:
TRUE if there is another valid file in the directory.

ovoid Close()
Close the directory during or after a file list scan

oPFilePathString GetEntryName() const
Get the name (without the volume or directory path) of the current entry in the directory scan. This may be the name of a file or a subdirectory or even a link or device for operating systems that support them.

To get a full path name concatenate the PDirectory object itself with the entry name.

Note that the directory scan will not return the "." and ".." entries that some platforms support.

Returns:
string for directory entry.

oBOOL IsSubDir() const
Determine if the directory entry currently being scanned is itself another directory entry.

Note that the directory scan will not return the "." and ".." entries that some platforms support.

Returns:
TRUE if entry is a subdirectory.

oBOOL GetInfo( PFileInfo & info ) const
Get file information on the current directory entry.

Parameters:
info - Object to receive the file information.
Returns:
TRUE if file information was successfully retrieved.

oint scanMask
Mask of file types that the directory scan will return


This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.