Common/StringUtil: Add convenience function for converting paths to use forward slashes on Windows.
This commit is contained in:
parent
2081e2f2a1
commit
b1d1f2aa06
|
@ -335,6 +335,23 @@ bool SplitPath(std::string_view full_path, std::string* path, std::string* filen
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UnifyPathSeparators(std::string& path)
|
||||||
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
|
for (char& c : path)
|
||||||
|
{
|
||||||
|
if (c == '\\')
|
||||||
|
c = '/';
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string WithUnifiedPathSeparators(std::string path)
|
||||||
|
{
|
||||||
|
UnifyPathSeparators(path);
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
std::string PathToFileName(std::string_view path)
|
std::string PathToFileName(std::string_view path)
|
||||||
{
|
{
|
||||||
std::string file_name, extension;
|
std::string file_name, extension;
|
||||||
|
|
|
@ -157,9 +157,17 @@ std::vector<std::string> SplitString(const std::string& str, char delim);
|
||||||
std::string JoinStrings(const std::vector<std::string>& strings, const std::string& delimiter);
|
std::string JoinStrings(const std::vector<std::string>& strings, const std::string& delimiter);
|
||||||
|
|
||||||
// "C:/Windows/winhelp.exe" to "C:/Windows/", "winhelp", ".exe"
|
// "C:/Windows/winhelp.exe" to "C:/Windows/", "winhelp", ".exe"
|
||||||
|
// This requires forward slashes to be used for the path separators, even on Windows.
|
||||||
bool SplitPath(std::string_view full_path, std::string* path, std::string* filename,
|
bool SplitPath(std::string_view full_path, std::string* path, std::string* filename,
|
||||||
std::string* extension);
|
std::string* extension);
|
||||||
|
|
||||||
|
// Converts the path separators of a path into forward slashes on Windows, which is assumed to be
|
||||||
|
// true for paths at various places in the codebase.
|
||||||
|
void UnifyPathSeparators(std::string& path);
|
||||||
|
std::string WithUnifiedPathSeparators(std::string path);
|
||||||
|
|
||||||
|
// Extracts just the filename (including extension) from a full path.
|
||||||
|
// This requires forward slashes to be used for the path separators, even on Windows.
|
||||||
std::string PathToFileName(std::string_view path);
|
std::string PathToFileName(std::string_view path);
|
||||||
|
|
||||||
bool StringBeginsWith(std::string_view str, std::string_view begin);
|
bool StringBeginsWith(std::string_view str, std::string_view begin);
|
||||||
|
|
Loading…
Reference in New Issue