From 4a8bfd06e73d7f051f0b39e19e57616c7bbb8ad1 Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Mon, 4 Jun 2018 21:05:27 -0400 Subject: New upstream version 2.1.1+dfsg --- src/lib/platform/MSWindowsUtil.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/lib/platform/MSWindowsUtil.cpp') diff --git a/src/lib/platform/MSWindowsUtil.cpp b/src/lib/platform/MSWindowsUtil.cpp index 4b51781..b657906 100644 --- a/src/lib/platform/MSWindowsUtil.cpp +++ b/src/lib/platform/MSWindowsUtil.cpp @@ -62,3 +62,23 @@ MSWindowsUtil::getErrorString(HINSTANCE hinstance, DWORD error, DWORD id) return result; } } + +/* + +This is a quick and dirty iterative CreateDirectory() wrapper that does zero +error checking. A much better cross-platform option exists in C++17 via +std::filesystem. If/when the project is updated to use 17 this function should +absolutley be replaced! + +*/ + +void +MSWindowsUtil::createDirectory(const std::string& path, bool stripLast) +{ + // create parent directories + for (auto pos = path.find_first_of('\\'); pos != std::string::npos; pos = path.find_first_of('\\', pos + 1)) + CreateDirectory(path.substr(0, pos).c_str(), NULL); + if (!stripLast) + // create innermost directory + CreateDirectory(path.c_str(), NULL); +} -- cgit v1.2.3