RetroShare/libbitdht/src/util/bdfile.cc
csoler 531966f3c9 added missing include
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5441 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-08-19 18:41:09 +00:00

54 lines
920 B
C++

#ifdef WIN32
#include <windows.h>
#endif
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include "bdfile.h"
namespace librs {
namespace util {
bool ConvertUtf8ToUtf16(const std::string& source, std::wstring& dest) ;
}
}
bool bdFile::renameFile(const std::string& from, const std::string& to)
{
int loops = 0;
#ifdef WINDOWS_SYS
std::wstring f;
librs::util::ConvertUtf8ToUtf16(from, f);
std::wstring t;
librs::util::ConvertUtf8ToUtf16(to, t);
while (!MoveFileEx(f.c_str(), t.c_str(), MOVEFILE_REPLACE_EXISTING))
#else
std::string f(from),t(to) ;
while (rename(from.c_str(), to.c_str()) < 0)
#endif
{
#ifdef WIN32
if (GetLastError() != ERROR_ACCESS_DENIED)
#else
if (errno != EACCES)
#endif
/* set errno? */
return false ;
#ifdef WIN32
Sleep(100000); /* us */
#else
usleep(100000); /* us */
#endif
if (loops >= 30)
return false ;
loops++;
}
return true ;
}