Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/coding
diff options
context:
space:
mode:
authorExMix <Rahuba.youri@gmail.com>2013-02-26 11:43:10 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:51:13 +0300
commit79daf332334c930e1734d02c69082a03fb61e7a4 (patch)
tree0aa99c3b0fb39a490f9d79f65b200fb4f9bc42c9 /coding
parent38d4a3d7f6032865e9e3523568960dd9ac5629f1 (diff)
Functions for create file path using native folder separator
Diffstat (limited to 'coding')
-rw-r--r--coding/file_name_utils.cpp40
-rw-r--r--coding/file_name_utils.hpp10
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);
}