17 size_t lastSlash = path.rfind(
'/');
18 size_t lastBackSlash = path.rfind(
'\\');
20 if (lastSlash == string::npos && lastBackSlash == string::npos) {
22 }
else if (lastSlash == string::npos) {
23 lastSeparator = lastBackSlash;
24 }
else if (lastBackSlash == string::npos) {
25 lastSeparator = lastSlash;
27 lastSeparator = lastSlash > lastBackSlash ? lastSlash : lastBackSlash;
29 return path.substr(lastSeparator + 1);
37 size_t lastSlash = path.rfind(
'/');
38 size_t lastBackSlash = path.rfind(
'\\');
40 if (lastSlash == string::npos && lastBackSlash == string::npos) {
42 }
else if (lastSlash == string::npos) {
43 lastSeparator = lastBackSlash;
44 }
else if (lastBackSlash == string::npos) {
45 lastSeparator = lastSlash;
47 lastSeparator = lastSlash > lastBackSlash ? lastSlash : lastBackSlash;
49 return path.substr(0, lastSeparator + 1);
60 static const char invalidPathChars[] = {
'\"',
'<',
'>',
'?',
'!',
'*',
'|',
'/',
':',
'\\',
'\n' };
61 for (
const char *
i = invalidPathChars, *end = invalidPathChars +
sizeof(invalidPathChars);
i != end; ++
i) {
63 while (startPos != string::npos) {
64 fileName.replace(startPos, 1,
string());
Contains all utilities provides by the c++utilities library.
CPP_UTILITIES_EXPORT std::string directory(const std::string &path)
Returns the directory of the specified path string (including trailing slash).
CPP_UTILITIES_EXPORT std::string fileName(const std::string &path)
Returns the file name and extension of the specified path string.
CPP_UTILITIES_EXPORT void removeInvalidChars(std::string &fileName)
Removes invalid characters from the specified fileName.