Fixed File on Unix to pass the Rename Tests

This commit is contained in:
KevDi
2019-11-18 18:24:36 +01:00
parent 8b4ef5f706
commit 6c662bfb4a
2 changed files with 10 additions and 0 deletions

View File

@@ -384,6 +384,11 @@ void FileImpl::renameToImpl(const std::string& path, bool failOnOverwrite)
{ {
poco_assert (!_path.empty()); poco_assert (!_path.empty());
struct stat st;
if (stat(path.c_str(), &st) == 0)
throw FileExistsException(path, EEXIST);
if (rename(_path.c_str(), path.c_str()) != 0) if (rename(_path.c_str(), path.c_str()) != 0)
handleLastErrorImpl(_path); handleLastErrorImpl(_path);
} }

View File

@@ -286,6 +286,11 @@ void FileImpl::renameToImpl(const std::string& path, bool failOnOverwrite)
{ {
poco_assert (!_path.empty()); poco_assert (!_path.empty());
struct stat st;
if (stat(path.c_str(), &st) == 0)
throw FileExistsException(path, EEXIST);
if (rename(_path.c_str(), path.c_str()) != 0) if (rename(_path.c_str(), path.c_str()) != 0)
handleLastErrorImpl(_path); handleLastErrorImpl(_path);
} }