summaryrefslogtreecommitdiff
path: root/Source/Core/Common/FileUtil.cpp
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2017-08-17 16:45:39 +0200
committerLéo Lam <leo@innovatetechnologi.es>2017-08-22 23:41:37 +0200
commita641609857d95f6d9eea19abcd3a8b7d251172c5 (patch)
tree95a689b086a70103775bc4f955fe44cef2212a97 /Source/Core/Common/FileUtil.cpp
parent76bbfbb511a968831f134d5bdf4da636ab8f19a3 (diff)
WFSI: Implement patch install finalization.
Diffstat (limited to 'Source/Core/Common/FileUtil.cpp')
-rw-r--r--Source/Core/Common/FileUtil.cpp14
1 files changed, 10 insertions, 4 deletions
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);