diff --git a/Foundation/include/Poco/Exception.h b/Foundation/include/Poco/Exception.h index ce6d4d035..d09d4ff99 100644 --- a/Foundation/include/Poco/Exception.h +++ b/Foundation/include/Poco/Exception.h @@ -246,6 +246,7 @@ POCO_DECLARE_EXCEPTION(Foundation_API, CreateFileException, FileException) POCO_DECLARE_EXCEPTION(Foundation_API, OpenFileException, FileException) POCO_DECLARE_EXCEPTION(Foundation_API, WriteFileException, FileException) POCO_DECLARE_EXCEPTION(Foundation_API, ReadFileException, FileException) +POCO_DECLARE_EXCEPTION(Foundation_API, FileNotReadyException, FileException) POCO_DECLARE_EXCEPTION(Foundation_API, DirectoryNotEmptyException, FileException) POCO_DECLARE_EXCEPTION(Foundation_API, UnknownURISchemeException, RuntimeException) POCO_DECLARE_EXCEPTION(Foundation_API, TooManyURIRedirectsException, RuntimeException) diff --git a/Foundation/src/Exception.cpp b/Foundation/src/Exception.cpp index a0bfd5849..a1460406e 100644 --- a/Foundation/src/Exception.cpp +++ b/Foundation/src/Exception.cpp @@ -169,6 +169,7 @@ POCO_IMPLEMENT_EXCEPTION(CreateFileException, FileException, "Cannot create file POCO_IMPLEMENT_EXCEPTION(OpenFileException, FileException, "Cannot open file") POCO_IMPLEMENT_EXCEPTION(WriteFileException, FileException, "Cannot write file") POCO_IMPLEMENT_EXCEPTION(ReadFileException, FileException, "Cannot read file") +POCO_IMPLEMENT_EXCEPTION(FileNotReadyException, FileException, "File not ready") POCO_IMPLEMENT_EXCEPTION(DirectoryNotEmptyException, FileException, "Directory not empty") POCO_IMPLEMENT_EXCEPTION(UnknownURISchemeException, RuntimeException, "Unknown URI scheme") POCO_IMPLEMENT_EXCEPTION(TooManyURIRedirectsException, RuntimeException, "Too many URI redirects") diff --git a/Foundation/src/File_WIN32U.cpp b/Foundation/src/File_WIN32U.cpp index 75b5da85c..e819ff501 100644 --- a/Foundation/src/File_WIN32U.cpp +++ b/Foundation/src/File_WIN32U.cpp @@ -100,7 +100,6 @@ bool FileImpl::existsImpl() const { case ERROR_FILE_NOT_FOUND: case ERROR_PATH_NOT_FOUND: - case ERROR_NOT_READY: case ERROR_INVALID_DRIVE: return false; default: @@ -439,6 +438,8 @@ void FileImpl::handleLastErrorImpl(const std::string& path) case ERROR_CANT_RESOLVE_FILENAME: case ERROR_INVALID_DRIVE: throw PathNotFoundException(path, err); + case ERROR_NOT_READY: + throw FileNotReadyException(path, err); case ERROR_ACCESS_DENIED: throw FileAccessDeniedException(path, err); case ERROR_ALREADY_EXISTS: