#include <BALL/SYSTEM/directory.h>
Public Member Functions | |
Constructors and Destructors | |
| Directory () | |
| Directory (const String &directory_path, bool set_current=false) | |
| Directory (const Directory &directory) | |
| ~Directory () | |
| void | clear () |
| void | destroy () |
Assignment | |
| bool | set (const String &directory_path, bool set_current=false) |
| void | set (const Directory &directory) |
| Directory & | operator= (const Directory &directory) |
| void | get (Directory &directory) const |
Accessors | |
| const String & | getPath () const |
| bool | rename (String old_path, String new_path) |
| bool | renameTo (String new_path) |
| bool | setCurrent (String directory_path) |
| bool | setCurrent () |
| bool | create (String path, const mode_t &mode=0777) |
| bool | remove (String old_path) |
| bool | remove () |
| bool | getFirstEntry (String &entry) |
| bool | getNextEntry (String &entry) |
| Size | countItems () |
| Size | countFiles () |
| Size | countDirectories () |
| bool | find (const String &filename, String &filepath) |
Static Public Attributes | |
Constants | |
| static const Size | MAX_PATH_LENGTH |
Private Member Functions | |
| String | getcwd_ () |
| int | chdir_ (const String &new_dir) |
| void | synchronize_ () |
| bool | desynchronize_ (bool result=true) |
Private Attributes | |
| DIR * | dir_ |
| dirent * | dirent_ |
| String | directory_path_ |
| String | backup_path_ |
Predicates | |
| bool | has (const String &item) |
| bool | isValid () const |
| bool | isCurrent () const |
| bool | isEmpty () |
| bool | operator== (const Directory &directory) const |
| bool | operator!= (const Directory &directory) const |
| static String | getUserHomeDir () |
Get the home directory of the current user. | |
| static bool | changeToUserHomeDir () |
Goto the home directory of the current user. | |
Directory class.
| BALL::Directory::Directory | ( | ) |
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.
| directory_path | the name of the directory to be opend | |
| set_current | true, to set the directory as the current, default = false |
| BALL::Directory::Directory | ( | const Directory & | directory | ) |
| BALL::Directory::~Directory | ( | ) |
Destructor.
| static bool BALL::Directory::changeToUserHomeDir | ( | ) | [static] |
Goto the home directory of the current user.
| int BALL::Directory::chdir_ | ( | const String & | new_dir | ) | [private] |
| void BALL::Directory::clear | ( | ) |
Explicit default initialization. Set the state to the default values. The path is set to an empty string.
| Size BALL::Directory::countDirectories | ( | ) |
Count the subdirectories in the directory.
| Size BALL::Directory::countFiles | ( | ) |
Count the files in the directory.
| Size BALL::Directory::countItems | ( | ) |
Count all items in the directory.
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.
| path | the path of the new directory | |
| mode | the access mode of the directory |
| void BALL::Directory::destroy | ( | ) |
Explicit destructor.
Find a file in the directory. The search is recursive.
| filename | the name of the file to be searched | |
| filepath | the path of the file, if it was found |
| void BALL::Directory::get | ( | Directory & | directory | ) | const |
Copying with cloning facility. Copy this instance to directory .
| directory | the directory to be assigned to |
| String BALL::Directory::getcwd_ | ( | ) | [private] |
Get the name of the first entry in the directory.
| entry | reference to the name of the first entry |
Get the name of the next entry in the directory.
| entry | reference to the name of the next entry |
| const String& BALL::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.
| static String BALL::Directory::getUserHomeDir | ( | ) | [static] |
Get the home directory of the current user.
Referenced by main().
Test if the directory has an item.
| item | the name of the item to look for |
| bool BALL::Directory::isCurrent | ( | ) | const |
Test if the directory is the current working directory.
| bool BALL::Directory::isEmpty | ( | ) |
Test if the directory is empty.
| bool BALL::Directory::isValid | ( | ) | const |
Test if the directory is valid. The directory is valid if it exists. This function uses opendir(const char *dirname).
Inequality operator.
Assignment operator. Assign directory to this instance.
Equality operator.
| bool BALL::Directory::remove | ( | ) |
Remove this directory. The directory this object points to is deleted and the object is cleared.
Remove a directory. With this method the directory associated with this object can not be removed. Use remove() instead to do so.
| old_path | the path of the directory |
Rename a given directory. With this method the directory associated with this object can not be renamed. Use renameTo instead to do so.
| old_path | the old path | |
| new_path | the new path |
Rename the directory associated with this object.
| new_path | the new path |
| void BALL::Directory::set | ( | const Directory & | directory | ) |
Assignment with cloning facility. Assign the Directory directory to *this.
| directory | the directory to be cloned |
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.
| directory_path | the name of the directory to be cloned | |
| set_current | true to set the directory as the current, default = false |
| bool BALL::Directory::setCurrent | ( | ) |
Set this directory as the current working directory.
Set a directory as the current.
| directory_path | the name of the directory |
| void BALL::Directory::synchronize_ | ( | ) | [private] |
String BALL::Directory::backup_path_ [private] |
DIR* BALL::Directory::dir_ [private] |
String BALL::Directory::directory_path_ [private] |
dirent* BALL::Directory::dirent_ [private] |
const Size BALL::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.