From a641609857d95f6d9eea19abcd3a8b7d251172c5 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Thu, 17 Aug 2017 16:45:39 +0200 Subject: WFSI: Implement patch install finalization. --- Source/Core/Common/FileUtil.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'Source/Core/Common/FileUtil.cpp') diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index 725d5134c5..84647fd4e9 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -521,7 +521,7 @@ bool DeleteDirRecursively(const std::string& directory) } // Create directory and copy contents (does not overwrite existing files) -void CopyDir(const std::string& source_path, const std::string& dest_path) +void CopyDir(const std::string& source_path, const std::string& dest_path, bool destructive) { if (source_path == dest_path) return; @@ -562,10 +562,16 @@ void CopyDir(const std::string& source_path, const std::string& dest_path) { if (!Exists(dest)) File::CreateFullPath(dest + DIR_SEP); - CopyDir(source, dest); + CopyDir(source, dest, destructive); + } + else if (!Exists(dest) && !destructive) + { + Copy(source, dest); + } + else + { + Rename(source, dest); } - else if (!Exists(dest)) - File::Copy(source, dest); #ifdef _WIN32 } while (FindNextFile(hFind, &ffd) != 0); FindClose(hFind); -- cgit v1.2.3