G+Smo
24.08.0
Geometry + Simulation Modules
|
File-system related functionality.
Input paths to the fuctions of this class can be given using any valid path seperator, this is in Unix only "/" and in Windows both "/" and "\\".
Return values only contain the preferred native path separator, which is in Unix "/" and in Windows "\\".
Output Paths always end with path separator, files without.
Does not check for special system cases, like AUX under Windows. (see https://en.wikipedia.org/wiki/Filename)
Static Public Member Functions | |
static bool | addSearchPaths (const std::string &paths) |
Add more search paths Returns true iff paths exist. | |
static bool | fileExists (const std::string &name) |
Checks if the file exists. More... | |
static bool | fileExistsInDataDir (const std::string &name) |
Checks if the file exists in GISMO_DATA_DIR. | |
static std::string | find (std::string fn) |
Find a file. More... | |
static std::string | findInDataDir (std::string fn) |
Find a file in GISMO_DATA_DIR. More... | |
static std::string | getBasename (std::string const &fn) |
Returns the base name without path and extension of the filename fn. | |
static std::string | getCanonicRepresentation (const std::string &fn, bool asPath=false) |
Returns the canonic representation of the path fn. More... | |
static std::string | getCurrentPath () |
Get current directory. | |
static std::string | getExePath () |
Get path of executable (without filename) | |
static std::string | getExtension (std::string const &fn) |
Returns the extension of the filename fn. | |
static std::string | getFilename (std::string const &fn) |
Returns the filename without the path of fn. | |
static std::string | getHomePath () |
Get path to home directory. | |
static const std::string & | getInvalidCharacters () |
Get system-dependent invalid characters for paths and filenames. | |
static char | getNativePathSeparator () |
Get preferred native path seperator. | |
static std::string | getPath (std::string const &fn, bool resolve=false) |
static std::string | getSearchPaths () |
Get the defined search paths. | |
static std::string | getTempPath () |
Auto-detect temp directory. | |
static const std::string & | getValidPathSeparators () |
Get valid path seperators. | |
static bool | isExplicitlyRelative (const std::string &fn) |
Checks if the path is a relative path Under Unix, if a name starts with "./" or "../", it is considered relative. Under Windows, if a name starts with "./", ".\\", "../" or "..\\", it is considered relative. | |
static bool | isFullyQualified (const std::string &fn) |
Checks if the path is fully qualified, also known as "absolute path" Under Unix, if a name starts with "/", it is considered fully qualified. Under Windows, it starts with the drive-letter followed by the path or with a "/" or a "\\" (refers to the current drive). | |
static std::string | makeRelative (const std::string &from, const std::string &to) |
static bool | mkdir (std::string fn) |
Make directory. More... | |
static void | open (const std::string &fn) |
Opens the file fn using the preferred application of the OS. | |
static bool | pathEqual (const std::string &p1, const std::string &p2) |
Checks paths for equality of paths. More... | |
static bool | setSearchPaths (const std::string &paths) |
Set the search paths Returns true iff all paths exist. | |
|
static |
Checks if the file exists.
If the fn isFullyQulaified (like "/foo/bar.txt"), or if the fn isExplicitlyRelative (like "../foo/bar.txt"), then only this path is considered.
If the fn has the form "bar.txt" or "foo/bar.txt", the file is searched in the current directory and all search paths (cf. getSearchPaths).
|
static |
Find a file.
fn | The filename |
If the fn isFullyQualified (like "/foo/bar.txt"), or if the fn isExplicitlyRelative (like "../foo/bar.txt"), the name is returned unchanged* if the file can be found. Otherwise, an empty string is returned.
If the fn has the form "bar.txt" or "foo/bar.txt", the file is searched in the current directory and all search paths (cf. getSearchPaths). If the file can be found, the full path is returned. Otherwise, an empty string is returned.
*: In any case, slashes are replaced by the native path separator.
|
static |
Find a file in GISMO_DATA_DIR.
fn | The filename |
If the file can be found, returns the full path. Otherwise, returns empty string.
In any case, slashes are replaced by the native path separator.
|
static |
Returns the canonic representation of the path fn.
This reduces foo/baz/../bar or foo/./bar to foo/bar. Moreover, the non-preferred path separators are replaced by the preferred ones.
This does not access the file system, the current directory, or the search paths. Therefore, leading .. can't be replaced. Leading ./././ will be reduced to ./
fn | input path as std::string |
asPath | If true, make sure the last character of the output is the native-path-separator. Else, let is as it was. |
|
static |
Returns the path without filename fn. If resolve is set, it will resolve relative paths to absolute ones with use of find.
|
static |
Calculates the relative path from absolute path from to path to. Example: from : /a/b/cd/ to : /a/b/c/d result: ../c/d Return an empty string, if from isn't absolute. Expands to with getCurrentPath if not absolute.
|
static |
Make directory.
Return true iff directory is available after calling this function. (This also holds if the directory has existed already.) If a relative path is given as fn, it will be expanded with getCurrentDirectory.
|
static |
Checks paths for equality of paths.
If the path is not isFullyQualified, creates an absolute path using getCurrentPath. Then getCanonicRepresentation is called to get canonical representations which are compared.