Use llvm::sys::fs::create_directories to create new directory on Windows.
authorOleksiy Vyalov <ovyalov@google.com>
Fri, 10 Apr 2015 17:02:26 +0000 (17:02 +0000)
committerOleksiy Vyalov <ovyalov@google.com>
Fri, 10 Apr 2015 17:02:26 +0000 (17:02 +0000)
http://reviews.llvm.org/D8977

llvm-svn: 234610

lldb/source/Host/windows/FileSystem.cpp

index f192635..de2374c 100644 (file)
@@ -12,6 +12,7 @@
 #include <shellapi.h>
 
 #include "lldb/Host/FileSystem.h"
+#include "llvm/Support/FileSystem.h"
 
 using namespace lldb_private;
 
@@ -27,8 +28,12 @@ FileSystem::MakeDirectory(const char *path, uint32_t file_permissions)
     // On Win32, the mode parameter is ignored, as Windows files and directories support a
     // different permission model than POSIX.
     Error error;
-    if (!::CreateDirectory(path, NULL) && GetLastError() != ERROR_ALREADY_EXISTS)
-        error.SetError(::GetLastError(), lldb::eErrorTypeWin32);
+    const auto err_code = llvm::sys::fs::create_directories(path, true);
+    if (err_code)
+    {
+        error.SetErrorString(err_code.message().c_str());
+    }
+
     return error;
 }