Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

Directory Class Reference
[Operating system support]

Directory class. More...

#include <directory.h>

List of all members.

Predicates

bool has (const String &item)
 Test if the directory has an item.
bool isValid () const
 Test if the directory is valid.
bool isCurrent () const
 Test if the directory is the current working directory.
bool isEmpty ()
 Test if the directory is empty.
bool operator== (const Directory &directory) const
 Equality operator.
bool operator!= (const Directory &directory) const
 Inequality operator.
String getUserHomeDir () throw ()
 Get the home directory of the current user.
bool changeToUserHomeDir () throw ()
 Goto the home directory of the current user.

Public Member Functions

Constructors and Destructors
 Directory ()
 Default constructor.
 Directory (const String &directory_path, bool set_current=false)
 Detailed constructor.
 Directory (const Directory &directory)
 Copy constructor.
 ~Directory ()
 Destructor.
void clear ()
 Explicit default initialization.
void destroy ()
 Explicit destructor.
Assignment
bool set (const String &directory_path, bool set_current=false)
 Assign the Directory with the path directory_path.
void set (const Directory &directory)
 Assignment with cloning facility.
Directoryoperator= (const Directory &directory)
 Assignment operator.
void get (Directory &directory) const
 Copying with cloning facility.
Accessors
const StringgetPath () const
 Get the path of this instance.
bool rename (String old_path, String new_path)
 Rename a given directory.
bool renameTo (String new_path)
 Rename the directory associated with this object.
bool setCurrent (String directory_path)
 Set a directory as the current.
bool setCurrent ()
 Set this directory as the current working directory.
bool create (String path, const mode_t &mode=0777)
 Create a new directory.
bool remove (String old_path)
 Remove a directory.
bool remove ()
 Remove this directory.
bool getFirstEntry (String &entry)
 Get the name of the first entry in the directory.
bool getNextEntry (String &entry)
 Get the name of the next entry in the directory.
Size countItems ()
 Count all items in the directory.
Size countFiles ()
 Count the files in the directory.
Size countDirectories ()
 Count the subdirectories in the directory.
bool find (const String &filename, String &filepath)
 Find a file in the directory.

Static Public Attributes

Constants
const Size MAX_PATH_LENGTH
 The maximum length of a path.


Detailed Description

Directory class.


Constructor & Destructor Documentation

Directory::Directory  ) 
 

Default constructor.

Constructs new Directory object. The directory path is set to the current working directory. The directory path does not have a path seperator {"/"} at its end.

Returns:
Directory - new constructed Directory object

Directory::Directory const String directory_path,
bool  set_current = false
 

Detailed constructor.

Construct new Directory object from {directory_path}. The directory path does not have a path seperator {"/"} at its end. If the given directory does not exists, the directory path is set to an empty string.

Parameters:
directory_path the name of the directory to be opend
set_current true, to set the directory as the current, default = false
Returns:
Directory - new constructed Directory object

Directory::Directory const Directory directory  ) 
 

Copy constructor.

Construct new Directory object by copying directory .

Parameters:
directory the Directory object to be copied (cloned)
Returns:
Directory - new constructed Directory cloned from directory

Directory::~Directory  ) 
 

Destructor.


Member Function Documentation

void Directory::clear  ) 
 

Explicit default initialization.

Set the state to the default values. The path is set to an empty string.

Size Directory::countDirectories  ) 
 

Count the subdirectories in the directory.

Returns:
Size the number of subdirectories

Size Directory::countFiles  ) 
 

Count the files in the directory.

Returns:
Size the number of files

Size Directory::countItems  ) 
 

Count all items in the directory.

Returns:
Size the number of items (files, links, directories)

bool Directory::create String  path,
const mode_t &  mode = 0777
 

Create a new directory.

The directory is created using an absolute path, if it starts with a path seperator, else it is created in this directory.

Parameters:
path the path of the new directory
mode the access mode of the directory
Returns:
bool true if the directory could be created

void Directory::destroy  ) 
 

Explicit destructor.

bool Directory::find const String filename,
String filepath
 

Find a file in the directory.

The search is recursive.

Parameters:
filename the name of the file to be searched
filepath the path of the file, if it was found
Returns:
bool true if the file was found

void Directory::get Directory directory  )  const
 

Copying with cloning facility.

Copy this instance to directory .

Parameters:
directory the directory to be assigned to

bool Directory::getFirstEntry String entry  ) 
 

Get the name of the first entry in the directory.

Parameters:
entry reference to the name of the first entry
Returns:
bool true if an entry was found

bool Directory::getNextEntry String entry  ) 
 

Get the name of the next entry in the directory.

Parameters:
entry reference to the name of the next entry
Returns:
bool true if an entry was found

const String& Directory::getPath  )  const
 

Get the path of this instance.

The directory path does not have a path seperator {"/"} at its end and is absolute. If a unvalid path was set the path is an empty string.

Returns:
String the name of the directory

bool Directory::has const String item  ) 
 

Test if the directory has an item.

Parameters:
item the name of the item to look for
Returns:
bool true if the directory has the item

bool Directory::isCurrent  )  const
 

Test if the directory is the current working directory.

Returns:
bool

bool Directory::isEmpty  ) 
 

Test if the directory is empty.

Returns:
bool

bool Directory::isValid  )  const
 

Test if the directory is valid.

The directory is valid if it exists. This function uses ::opendir(const char *dirname).

Returns:
bool true if the directory is valid

bool Directory::operator!= const Directory directory  )  const
 

Inequality operator.

Returns:
bool, true if the name of both directories are inequal

Directory& Directory::operator= const Directory directory  ) 
 

Assignment operator.

Assign directory to this instance.

bool Directory::operator== const Directory directory  )  const
 

Equality operator.

Returns:
bool, true if the name of both directories are equal

bool Directory::remove  ) 
 

Remove this directory.

The directory this object points to is deleted and the object is cleared.

Returns:
bool true if the directory could be removed

bool Directory::remove String  old_path  ) 
 

Remove a directory.

With this method the directory associated with this object can not be removed. Use remove() instead to do so.

Parameters:
old_path the path of the directory
Returns:
bool true if the directory could be removed

bool Directory::rename String  old_path,
String  new_path
 

Rename a given directory.

With this method the directory associated with this object can not be renamed. Use renameTo instead to do so.

Parameters:
old_path the old path
new_path the new path
Returns:
bool true if the directory could be renamed

bool Directory::renameTo String  new_path  ) 
 

Rename the directory associated with this object.

Parameters:
new_path the new path
Returns:
bool true if the directory could be renamed

void Directory::set const Directory directory  ) 
 

Assignment with cloning facility.

Assign the Directory directory to *this.

Parameters:
directory the directory to be cloned

bool Directory::set const String directory_path,
bool  set_current = false
 

Assign the Directory with the path directory_path.

The given directory path can be either absolute or relative. If the path starts with a path seperator it is set as a absolute path.

Parameters:
directory_path the name of the directory to be cloned
set_current true to set the directory as the current, default = false
Returns:
bool true if the path could be set and is valid

bool Directory::setCurrent  ) 
 

Set this directory as the current working directory.

Returns:
bool true if the directory could be set as the current

bool Directory::setCurrent String  directory_path  ) 
 

Set a directory as the current.

Parameters:
directory_path the name of the directory
Returns:
bool true if the directory could be set as the current


Member Data Documentation

const Size Directory::MAX_PATH_LENGTH [static]
 

The maximum length of a path.

This constant is used for system calls that require a maximum length (e.g., getcwd()). Default is 8192.