Skip to content

Commit fbbde36

Browse files
authored
Merge pull request #223 from ahoppen/windows-dir-rename
On Windows use `RemoveDirectoryW` to delete empty directory before renaming directory to it
2 parents b093cdb + 3bfe940 commit fbbde36

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

lib/Database/Database.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ static std::error_code renameDirectory(const Twine &from, const Twine &to) {
5555
if (!llvm::sys::fs::exists(from)) {
5656
return make_error_code(llvm::errc::no_such_file_or_directory);
5757
}
58-
// MoveFileW does not override an existing directory. Remove the destination if it exists.
59-
llvm::sys::fs::remove_directories(to, /*IgnoreErrors=*/true);
6058
SmallVector<wchar_t, 128> wideFrom;
6159
if (std::error_code ec = llvm::sys::path::widenPath(from, wideFrom)) {
6260
return ec;
@@ -65,6 +63,8 @@ static std::error_code renameDirectory(const Twine &from, const Twine &to) {
6563
if (std::error_code ec = llvm::sys::path::widenPath(to, wideTo)) {
6664
return ec;
6765
}
66+
// MoveFileW does not override an existing directory. Remove the destination if it is an empty directory.
67+
::RemoveDirectoryW(wideTo.begin());
6868
if (!::MoveFileW(wideFrom.begin(), wideTo.begin())) {
6969
return llvm::mapWindowsError(GetLastError());
7070
}

0 commit comments

Comments
 (0)