diff options
author | ExMix <Rahuba.youri@gmail.com> | 2013-02-26 11:43:10 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:51:13 +0300 |
commit | 79daf332334c930e1734d02c69082a03fb61e7a4 (patch) | |
tree | 0aa99c3b0fb39a490f9d79f65b200fb4f9bc42c9 /coding | |
parent | 38d4a3d7f6032865e9e3523568960dd9ac5629f1 (diff) |
Functions for create file path using native folder separator
Diffstat (limited to 'coding')
-rw-r--r-- | coding/file_name_utils.cpp | 40 | ||||
-rw-r--r-- | coding/file_name_utils.hpp | 10 |
2 files changed, 50 insertions, 0 deletions
diff --git a/coding/file_name_utils.cpp b/coding/file_name_utils.cpp index 0976a1ba93..584162bff6 100644 --- a/coding/file_name_utils.cpp +++ b/coding/file_name_utils.cpp @@ -18,4 +18,44 @@ void GetNameFromFullPath(string & name) name = name.substr(i+1); } +string GetNativeSeparator() +{ +#ifdef OMIM_OS_WINDOWS + return "\\"; +#elif + return "/"; +#endif; +} + +string JoinFoldersToPath(const string & folder, const string & file) +{ + return folder + GetNativeSeparator() + file; +} + +string JoinFoldersToPath(const string & folder1, const string & folder2, const string & file) +{ + string nativeSeparator = GetNativeSeparator(); + return folder1 + nativeSeparator + folder2 + nativeSeparator + file; +} + +string JoinFoldersToPath(const string & folder1, const string & folder2, const string & folder3, const string & file) +{ + string nativeSeparator = GetNativeSeparator(); + return folder1 + nativeSeparator + folder2 + nativeSeparator + folder3 + nativeSeparator + file; +} + +string JoinFoldersToPath(const vector<string> & folders, const string & file) +{ + if (folders.empty()) + return file; + + string nativeSeparator = GetNativeSeparator(); + string result; + for (size_t i = 0; i < folders.size(); ++i) + result = result + folders[i] + nativeSeparator; + + result += file; + return result; +} + } diff --git a/coding/file_name_utils.hpp b/coding/file_name_utils.hpp index 8cc8b1e60c..6ce102f7d2 100644 --- a/coding/file_name_utils.hpp +++ b/coding/file_name_utils.hpp @@ -1,6 +1,7 @@ #pragma once #include "../std/string.hpp" +#include "../std/vector.hpp" namespace my { @@ -9,4 +10,13 @@ namespace my /// Get file name from full path. void GetNameFromFullPath(string & name); + + /// Get folder separator for specific platform + string GetNativeSeparator(); + + /// Create full path from some folder using native folders separator + string JoinFoldersToPath(const string & folder, const string & file); + string JoinFoldersToPath(const string & folder1, const string & folder2, const string & file); + string JoinFoldersToPath(const string & folder1, const string & folder2, const string & folder3, const string & file); + string JoinFoldersToPath(const vector<string> & folders, const string & file); } |