Ocean
Ocean::IO::ScopedDirectory Class Referencefinal

This class implements a scoped directory object which will delete the underlying directory (and sub-directories including all files) from the filesystem when the scope ends. More...

Inheritance diagram for Ocean::IO::ScopedDirectory:

Public Member Functions

 ScopedDirectory ()=default
 Default constructor creating an invalid object not holding any directory. More...
 
 ScopedDirectory (ScopedDirectory &&scopedDirectory)
 Move constructor. More...
 
 ScopedDirectory (const Directory &directory)
 Create a new scoped directory. More...
 
 ScopedDirectory (const std::string &directory)
 Create a new scoped directory. More...
 
 ~ScopedDirectory ()
 Destructs this object and deletes the actual directory. More...
 
ScopedDirectoryoperator= (ScopedDirectory &&scopedDirectory)
 Move operator. More...
 
- Public Member Functions inherited from Ocean::IO::Directory
 Directory ()
 Creates an empty directory. More...
 
 Directory (const std::string &path)
 Creates a new directory. More...
 
 Directory (const File &file)
 Creates a new directory by a given file. More...
 
 Directory (const Path &path)
 Creates a new directory by a given path. More...
 
virtual bool isValid () const
 Returns whether the directory is valid. More...
 
virtual bool exists () const
 Returns whether the directory exists already. More...
 
bool remove (const bool recursively=false) const
 Removes this directory from the filesystem. More...
 
bool create () const
 Create all necessary sub-directories for the given path, if they do not exist. More...
 
std::string base () const
 Returns the base of this directory. More...
 
std::string name () const
 Returns the name of a directory. More...
 
Files findFiles (const std::string &fileType=std::string("*"), const bool recursive=false) const
 Returns all files in the directory with the given file format. More...
 
Directories findDirectories (const bool recursive=false) const
 Returns all directories of this directory. More...
 
File operator+ (const File &file) const
 Returns a file composed of this directory and a relative file. More...
 
Directory operator+ (const Directory &path) const
 Returns a directory composed of this and a relative directory. More...
 
Directoryoperator+= (const Directory &path)
 Adds an relative path to this directory. More...
 
Directoryoperator-- ()
 Removes the last sub-directory from this directory. More...
 
Directory operator-- (int)
 Removes the last sub-directory from this directory. More...
 
- Public Member Functions inherited from Ocean::IO::Path
virtual ~Path ()=default
 Destructs a path. More...
 
Type type () const
 Returns the type of this path. More...
 
bool isAbsolute () const
 Returns whether this path is absolute. More...
 
bool isRelative () const
 Returns whether this path is relative. More...
 
bool isNull () const
 Returns whether this path holds no valid. More...
 
bool operator== (const Path &right) const
 Returns whether two paths are equal. More...
 
bool operator!= (const Path &path) const
 Returns whether two paths are not equal. More...
 
const std::string & operator() () const
 Returns the value of this path. More...
 
bool operator< (const Path &path) const
 Less operator comparing the actual strings of two paths. More...
 

Protected Member Functions

 ScopedDirectory (const ScopedDirectory &scopedDirectory)=delete
 Disabled copy constructor. More...
 
ScopedDirectoryoperator= (const ScopedDirectory &scopedDirectory)=delete
 Disabled copy constructor. More...
 
- Protected Member Functions inherited from Ocean::IO::Path
 Path ()=default
 Creates a new undefined path. More...
 
 Path (const Path &path)=default
 Copy constructor. More...
 
 Path (const std::string &value)
 Creates a new path. More...
 
void checkPath (const Type expectType)
 Checks the type of this path and trims it. More...
 
void trim ()
 Trims this path. More...
 
Pathoperator= (const Path &path)=default
 Default assign operator. More...
 

Additional Inherited Members

- Public Types inherited from Ocean::IO::Path
enum  Type {
  TYPE_INVALID = 0 , TYPE_FILE = 1 , TYPE_DIRECTORY = 2 , TYPE_ABSOLUTE = 4 ,
  TYPE_RELATIVE = 8 , TYPE_NETWORK = 16
}
 Definition of different path types. More...
 
enum  Separator { SEPARATOR_UNDEFINED = 0 , SEPARATOR_SLASH = '/' , SEPARATOR_BACKSLASH = '\\' }
 Definition of path separators. More...
 
- Static Public Member Functions inherited from Ocean::IO::Directory
static Directory createTemporaryDirectory ()
 Creates a new temporary directory. More...
 
- Static Public Member Functions inherited from Ocean::IO::Path
static bool isSeparator (const char character)
 Returns whether a given character is a separator. More...
 
static char defaultSeparator ()
 Returns the default separator of a path. More...
 
- Static Protected Member Functions inherited from Ocean::IO::Directory
static Directory createTemporaryDirectoryApple ()
 Creates a new temporary directory (specialization for Apple platforms). More...
 
static bool existsApple (const std::string &directory)
 Returns whether a directory exists (specialization for Apple platforms). More...
 
- Protected Attributes inherited from Ocean::IO::Path
Type pathType_ = TYPE_INVALID
 Path type. More...
 
std::string pathValue_
 Path value. More...
 

Detailed Description

This class implements a scoped directory object which will delete the underlying directory (and sub-directories including all files) from the filesystem when the scope ends.

See also
Directory

Constructor & Destructor Documentation

◆ ScopedDirectory() [1/5]

Ocean::IO::ScopedDirectory::ScopedDirectory ( )
default

Default constructor creating an invalid object not holding any directory.

◆ ScopedDirectory() [2/5]

Ocean::IO::ScopedDirectory::ScopedDirectory ( ScopedDirectory &&  scopedDirectory)
inline

Move constructor.

Parameters
scopedDirectoryThe scoped directory to be moved

◆ ScopedDirectory() [3/5]

Ocean::IO::ScopedDirectory::ScopedDirectory ( const Directory directory)
inlineexplicit

Create a new scoped directory.

Parameters
directoryThe directory for which the new scoped object will be created

◆ ScopedDirectory() [4/5]

Ocean::IO::ScopedDirectory::ScopedDirectory ( const std::string &  directory)
inlineexplicit

Create a new scoped directory.

Parameters
directoryThe name of the directory for which a new scoped object will be created

◆ ~ScopedDirectory()

Ocean::IO::ScopedDirectory::~ScopedDirectory ( )

Destructs this object and deletes the actual directory.

◆ ScopedDirectory() [5/5]

Ocean::IO::ScopedDirectory::ScopedDirectory ( const ScopedDirectory scopedDirectory)
protecteddelete

Disabled copy constructor.

Parameters
scopedDirectoryDirectory which would be copied

Member Function Documentation

◆ operator=() [1/2]

ScopedDirectory& Ocean::IO::ScopedDirectory::operator= ( const ScopedDirectory scopedDirectory)
protecteddelete

Disabled copy constructor.

Parameters
scopedDirectoryDirectory which would be copied
Returns
Reference to this object

◆ operator=() [2/2]

ScopedDirectory& Ocean::IO::ScopedDirectory::operator= ( ScopedDirectory &&  scopedDirectory)

Move operator.

Parameters
scopedDirectoryThe scoped directory to be moved
Returns
Reference to this object

The documentation for this class was generated from the following file: