Geogram
Version 1.9.1
A programming library of geometric algorithms
|
A Node in a FileSystem. More...
#include <geogram/basic/file_system.h>
Public Member Functions | |
Node () | |
Node constructor. | |
~Node () override | |
Node destructor. | |
virtual bool | is_file (const std::string &path) |
Checks if a path is a regular file. More... | |
virtual bool | is_directory (const std::string &path) |
Checks if a path is a directory. More... | |
virtual bool | create_directory (const std::string &path) |
Creates a directory. More... | |
virtual bool | delete_directory (const std::string &path) |
Deletes a directory. More... | |
virtual bool | delete_file (const std::string &path) |
Deletes a file. More... | |
virtual bool | get_directory_entries (const std::string &path, std::vector< std::string > &result) |
Lists directory contents. More... | |
virtual std::string | get_current_working_directory () |
Gets the current working directory. More... | |
virtual bool | set_current_working_directory (const std::string &path) |
Sets the working directory. More... | |
virtual bool | rename_file (const std::string &old_name, const std::string &new_name) |
Renames or moves a file. More... | |
virtual Numeric::uint64 | get_time_stamp (const std::string &path) |
Gets a file last modification time. More... | |
virtual bool | set_executable_flag (const std::string &filename) |
Marks a filename as executable. More... | |
virtual bool | touch (const std::string &filename) |
Modifies the last modification time of a file. More... | |
virtual std::string | normalized_path (const std::string &path) |
Normalizes a path. More... | |
virtual std::string | home_directory () |
Gets the current user's home directory. More... | |
virtual std::string | documents_directory () |
Gets the current user's home directory. More... | |
virtual std::string | load_file_as_string (const std::string &path) |
Load file contents in a string. More... | |
virtual std::string | extension (const std::string &path) |
Gets a path extension. More... | |
virtual std::string | base_name (const std::string &path, bool remove_extension=true) |
Gets a path base name. More... | |
virtual std::string | dir_name (const std::string &path) |
Gets a path directory. More... | |
virtual void | get_directory_entries (const std::string &path, std::vector< std::string > &result, bool recursive) |
Lists directory contents. More... | |
virtual void | get_files (const std::string &path, std::vector< std::string > &result, bool recursive=false) |
Lists files in a directory. More... | |
virtual void | get_subdirectories (const std::string &path, std::vector< std::string > &result, bool recursive=false) |
Lists sub-directories in a directory. More... | |
virtual void | flip_slashes (std::string &path) |
Converts a path to Unix format. More... | |
virtual bool | copy_file (const std::string &from, const std::string &to) |
Copies a file. More... | |
Public Member Functions inherited from GEO::Counted | |
void | ref () const |
Increments the reference count. More... | |
void | unref () const |
Decrements the reference count. More... | |
bool | is_shared () const |
Check if the object is shared. More... | |
int | nb_refs () const |
Gets the number of references that point to this object. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from GEO::Counted | |
static void | ref (const Counted *counted) |
Increments the reference count. More... | |
static void | unref (const Counted *counted) |
Decrements the reference count. More... | |
Protected Member Functions inherited from GEO::Counted | |
Counted () | |
Creates a reference counted object. More... | |
virtual | ~Counted () |
Destroys a reference counted object. More... | |
A Node in a FileSystem.
This class abstracts a FileSystem and operations on it.
Definition at line 69 of file file_system.h.
|
virtual |
Gets a path base name.
Extracts the base name from the path path
, that is any character that appear after the last directory separator. If parameter remove_extension
is true
(the default), the extension is removed from the base name, otherwise is it kept. If the path does not contain any directory separator, the whole path is returned.
Examples
[in] | path | the path to a file or directory |
[in] | remove_extension | whether to remove the extension from the base name or not. |
|
virtual |
Copies a file.
[in] | from | name of the file to be copied |
[out] | to | name of the copy |
true | if the copy was successful |
false | otherwise |
Reimplemented in GEO::FileSystem::MemoryNode.
|
virtual |
Creates a directory.
This recursively creates a new directory given by its absolute path path
, creating any missing intermediate directories on the fly.
[in] | path | absolute path to the directory to be created. |
true | if the directory was successfully created. |
false | otherwise. |
Reimplemented in GEO::FileSystem::MemoryNode.
|
virtual |
Deletes a directory.
This deletes the directory specified by path path
. The path must specify an empty directory.
[in] | path | the path of the directory to be removed. |
true | if the directory was successfully deleted. |
false | otherwise. |
Reimplemented in GEO::FileSystem::MemoryNode.
|
virtual |
Deletes a file.
[in] | path | the path of the file to be deleted. |
true | if the file path was successfully deleted |
false | otherwise |
Reimplemented in GEO::FileSystem::MemoryNode.
|
virtual |
Gets a path directory.
Extracts the directory from the path path
, that is any character that appear before the last directory separator. If the path does not contain any directory separator, string "." is returned.
Examples
[in] | path | the path to a file or directory |
|
virtual |
Gets the current user's home directory.
Under unix, it returns the content of the HOME environment variable. Under Windows, it returns the "My Documents" directory.
|
virtual |
Gets a path extension.
Extracts the extension from the path path
, that is any character that appear after the last dot (.) and after any directory separator character. If path
has no extension, the empty string is returned.
Examples
[in] | path | the path to a file or directory |
|
virtual |
Converts a path to Unix format.
It changes all Windows "\" directory separators into Unix "/" directory separators.
[in,out] | path | the path to be converted |
|
virtual |
Gets the current working directory.
|
virtual |
Lists directory contents.
Lists all the files and sub-directories in the directory specified by path
, and stores the list in result
. Special entries "." and ".." are not stored in result
.
[in] | path | the path to the directory to list. |
[in] | result | output vector of files and sub-directories. |
true | if path specifies a readable directory. |
false | otherwise. |
Reimplemented in GEO::FileSystem::MemoryNode.
|
virtual |
Lists directory contents.
Lists all the files and sub-directories in the directory specified by path
, and stores the list in result
. Special entries "." and ".." are not stored in result
. If parameter recursive is set to true
, result
will include the entries of all sub-directories in path
recursively.
[in] | path | the path to an existing directory |
[in] | result | output vector of entries in path |
[in] | recursive | recursively traverses all sub-directories in path |
|
virtual |
Lists files in a directory.
Lists all the files in the directory specified by path
, and stores the list in result
. Special entries "." and ".." are not stored in result
. If parameter recursive is set to true
, result
will include the entries of all sub-directories in path
recursively.
[in] | path | the path to an existing directory |
[in] | result | output vector of files in path |
[in] | recursive | recursively traverses all sub-directories in path |
|
virtual |
Lists sub-directories in a directory.
Lists all the sub-directories in the directory specified by path
, and stores the list in result
. Special entries "." and ".." are not stored in result
. If parameter recursive is set to true
, result
will include the entries of all sub-directories in path
recursively.
[in] | path | the path to an existing directory |
[in] | result | output vector of sub-directories in path |
[in] | recursive | recursively traverses all sub-directories in path |
|
virtual |
Gets a file last modification time.
[in] | path | the path to an existing file or directory. |
|
virtual |
Gets the current user's home directory.
|
virtual |
Checks if a path is a directory.
[in] | path | system path to verify. |
true | if path is a directory. |
false | otherwise. |
Reimplemented in GEO::FileSystem::MemoryNode.
|
virtual |
Checks if a path is a regular file.
[in] | path | system path to verify. |
true | if path is a regular file. |
false | otherwise. |
Reimplemented in GEO::FileSystem::MemoryNode.
|
virtual |
Load file contents in a string.
[in] | path | the path to the file |
Reimplemented in GEO::FileSystem::MemoryNode.
|
virtual |
Normalizes a path.
A path is normalized if it is absolute and it does not contain any "../" component.
[in] | path | the path to be normalized. The path can have components that do not exist. |
|
virtual |
Renames or moves a file.
This renames the existing file or directory specified by path old_name
to the new path new_name
. The new name must not be the name of an existing file or directory. If old_name
and new_name
are not in the same directory, old_name
is moved to the new_name
.
[in] | old_name | path of the file or directory to be renamed. |
[in] | new_name | new path of the file or directory. |
true | if the file was renamed successfully. |
false | otherwise. |
Reimplemented in GEO::FileSystem::MemoryNode.
|
virtual |
Sets the working directory.
[in] | path | path to the new working directory. |
true | if the current directory could be changed to path . |
false | otherwise. |
|
virtual |
Marks a filename as executable.
On unix, it chmods the file, on Windows, does nothing.
[in] | filename | name of the file to be made executable |
true | on success. |
false | otherwise. |
|
virtual |
Modifies the last modification time of a file.
[in] | filename | name of the file. |
true | on success. |
false | otherwise. |