1 #ifndef SimTK_SimTKCOMMON_PATHNAME_H_
2 #define SimTK_SimTKCOMMON_PATHNAME_H_
134 bool& dontApplySearchPath,
135 std::string& directory,
136 std::string& fileName,
137 std::string& extension);
165 const std::string& pathname,
166 std::string& directory,
167 std::string& fileName,
168 std::string& extension);
174 std::string& directory,
175 std::string& fileName,
176 std::string& extension) {
177 bool dontApplySearchPath;
178 deconstructPathname(pathname, dontApplySearchPath, directory, fileName, extension);
179 if (!dontApplySearchPath)
180 directory = getCurrentWorkingDirectory() + directory;
201 std::string directory, fileName, extension;
202 deconstructAbsolutePathname(pathname, directory, fileName, extension);
203 return directory + fileName + extension;
210 std::string absPath = getAbsolutePathname(dirPathname);
211 if (!absPath.empty() && absPath[absPath.size()-1] != getPathSeparatorChar())
212 absPath += getPathSeparatorChar();
220 (
const std::string& swd,
const std::string& pathname) {
221 std::string directory, fileName, extension;
222 deconstructPathnameUsingSpecifiedWorkingDirectory
223 (swd, pathname, directory, fileName, extension);
224 return directory + fileName + extension;
232 (
const std::string& swd,
const std::string& dirPathname) {
233 std::string absPath =
234 getAbsolutePathnameUsingSpecifiedWorkingDirectory(swd, dirPathname);
235 if (!absPath.empty() && absPath[absPath.size()-1] != getPathSeparatorChar())
236 absPath += getPathSeparatorChar();
255 const std::string& offset);
261 const std::string& offsetFromDefaultInstallDir);
284 std::string& absolutePathname);
322 return c==
'/' || c==
'\\';
This file defines the Array_<T,X> class and related support classes including base classes ArrayViewC...
Mandatory first inclusion for any Simbody source or header file.
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:224
This class encapsulates the handling of file and directory pathnames in a platform-independent manner...
Definition: Pathname.h:91
static std::string addDirectoryOffset(const std::string &base, const std::string &offset)
Append a subdirectory offset to an existing pathname (relative or absolute).
static void deconstructPathname(const std::string &pathname, bool &dontApplySearchPath, std::string &directory, std::string &fileName, std::string &extension)
Dismantle a supplied pathname into its component parts.
static std::string getCurrentDrive()
On Windows, return the current drive letter in lowercase, followed by ":"; on other platforms just re...
static void deconstructAbsolutePathname(const std::string &pathname, std::string &directory, std::string &fileName, std::string &extension)
Give back the deconstructed canonicalized absolute pathname for a given path.
Definition: Pathname.h:173
static std::string getCurrentWorkingDirectory(const std::string &drive="")
Get the absolute pathname of the current working directory including a trailing separator character.
static std::string getRootDirectory(const std::string &drive="")
Get the canonicalized name of the root directory.
static std::string getAbsoluteDirectoryPathname(const std::string &dirPathname)
This is the same as getAbsolutePathname() except that the final segment is interpreted as a directory...
Definition: Pathname.h:209
static std::string getAbsoluteDirectoryPathnameUsingSpecifiedWorkingDirectory(const std::string &swd, const std::string &dirPathname)
Same as getAbsoluteDirectoryPathname() but using a specified working directory rather than the curren...
Definition: Pathname.h:232
static std::string getEnvironmentVariable(const std::string &name)
Return the value of the named environment variable or the empty string if the variable is not found.
static std::string getThisExecutableDirectory()
Get the absolute pathname of the directory which contains the currently executing program.
static std::string getCurrentDriveLetter()
On Windows, return the current drive letter in lowercase, with no trailing ":"; on other platforms re...
static std::string getAbsolutePathname(const std::string &pathname)
Get canonicalized absolute pathname from a given pathname which can be relative or absolute.
Definition: Pathname.h:200
static bool isPathSeparator(char c)
Returns true if the character is slash or backslash.
Definition: Pathname.h:321
static std::string getThisExecutablePath()
Get the absolute pathname of the currently executing program.
static std::string getPathSeparator()
Return this platform's pathname separator character as a string.
static bool fileExists(const std::string &pathname)
Return true if the given pathname names a file that exists and is readable.
static std::string getDefaultInstallDir()
Get the default installation directory for this platform.
static void deconstructPathnameUsingSpecifiedWorkingDirectory(const std::string &swd, const std::string &pathname, std::string &directory, std::string &fileName, std::string &extension)
An extension of deconstructPathname().
static std::string getInstallDir(const std::string &envInstallDir, const std::string &offsetFromDefaultInstallDir)
Find the installation directory for something, using the named installation directory environment var...
static std::string getAbsolutePathnameUsingSpecifiedWorkingDirectory(const std::string &swd, const std::string &pathname)
Same as getAbsolutePathname() but using a specified working directory rather than the current working...
Definition: Pathname.h:220
static bool getFunctionLibraryDirectory(void *func, std::string &absolutePathname)
Get the absolute pathname of the directory which contains the library/binary from which func was load...
static char getPathSeparatorChar()
Return this platform's pathname separator character as a char.
static bool environmentVariableExists(const std::string &name)
Return true if the named environment variable is present in the environment.
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37