diff --git a/src/xenia/base/filesystem_win.cc b/src/xenia/base/filesystem_win.cc index c36197a05..2028a2d9a 100644 --- a/src/xenia/base/filesystem_win.cc +++ b/src/xenia/base/filesystem_win.cc @@ -45,13 +45,11 @@ bool PathExists(const std::wstring& path) { } bool CreateFolder(const std::wstring& path) { - wchar_t folder[kMaxPath] = {0}; - auto end = std::wcschr(path.c_str(), xe::kWPathSeparator); - while (end) { - wcsncpy(folder, path.c_str(), end - path.c_str() + 1); - CreateDirectory(folder, NULL); - end = wcschr(++end, xe::kWPathSeparator); - } + size_t pos = 0; + do { + pos = path.find_first_of(xe::kWPathSeparator, pos + 1); + CreateDirectoryW(path.substr(0, pos).c_str(), nullptr); + } while (pos != std::string::npos); return PathExists(path); }