From 7264384ae4dc1adaf861750516030826a8c91645 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sun, 4 Nov 2012 22:36:11 +0200 Subject: [PATCH] Use native win32 functions for rename and unlink --- source/fs/utils.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source/fs/utils.cpp b/source/fs/utils.cpp index 1da1859..9a98025 100644 --- a/source/fs/utils.cpp +++ b/source/fs/utils.cpp @@ -1,5 +1,7 @@ #include -#ifndef WIN32 +#ifdef WIN32 +#include +#else #include #endif #include @@ -129,14 +131,24 @@ Path realpath(const Path &path) void rename(const Path &from, const Path &to) { +#ifdef WIN32 + if(!MoveFileEx(from.c_str(), to.c_str(), MOVEFILE_REPLACE_EXISTING)) + throw system_error("MoveFileEx"); +#else if(::rename(from.str().c_str(), to.str().c_str())==-1) throw system_error("rename"); +#endif } void unlink(const Path &path) { +#ifdef WIN32 + if(!DeleteFile(path.c_str())) + throw system_error("DeleteFile"); +#else if(::unlink(path.str().c_str())==-1) throw system_error("unlink"); +#endif } Path relative(const Path &path, const Path &base) -- 2.43.0