1 #ifndef SimTK_SimTKCOMMON_PATHNAME_H_
2 #define SimTK_SimTKCOMMON_PATHNAME_H_
128 static void deconstructPathname(
const std::string& name,
129 bool& isAbsolutePath,
130 std::string& directory,
131 std::string& fileName,
132 std::string& extension);
153 std::string directory, fileName, extension;
154 deconstructPathname(pathname, isAbsolutePath, directory, fileName, extension);
156 directory = getCurrentWorkingDirectory() + directory;
157 return directory + fileName + extension;
164 std::string absPath = getAbsolutePathname(dirPathname);
165 if (!absPath.empty() && absPath[absPath.size()-1] != getPathSeparatorChar())
166 absPath += getPathSeparatorChar();
172 static bool fileExists(
const std::string& fileName);
177 static std::string getDefaultInstallDir();
181 static std::string addDirectoryOffset(
const std::string& base,
const std::string& offset);
186 static std::string getInstallDir(
const std::string& envInstallDir,
187 const std::string& offsetFromDefaultInstallDir);
190 static std::string getThisExecutablePath();
193 static std::string getThisExecutableDirectory();
201 static std::string getCurrentWorkingDirectory(
const std::string& drive=
"");
205 static std::string getRootDirectory(
const std::string& drive=
"");
208 static std::string getCurrentDriveLetter();
211 static std::string getCurrentDrive();
214 static bool environmentVariableExists(
const std::string& name);
220 static std::string getEnvironmentVariable(
const std::string& name);
224 static std::string getPathSeparator();
228 static char getPathSeparatorChar();
231 return c==
'/' || c==
'\\';
237 #endif // SimTK_SimTKCOMMON_PATHNAME_H_
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:202
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:163
This class encapsulates the handling of file and directory pathnames in a platform-independent manner...
Definition: Pathname.h:88
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
This file defines the Array_ class and related support classes including base classes ArrayViewC...
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:151
static bool isPathSeparator(char c)
Returns true if the character is slash or backslash.
Definition: Pathname.h:230
Mandatory first inclusion for any Simbody source or header file.