#include <cstdio>
-#ifndef WIN32
+#ifdef WIN32
+#include <windows.h>
+#else
#include <unistd.h>
#endif
#include <msp/core/systemerror.h>
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)