diff options
Diffstat (limited to 'debian/mp4v2/mp4v2-2.0.0~dfsg0/libplatform/io/FileSystem_win32.cpp')
-rw-r--r-- | debian/mp4v2/mp4v2-2.0.0~dfsg0/libplatform/io/FileSystem_win32.cpp | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/debian/mp4v2/mp4v2-2.0.0~dfsg0/libplatform/io/FileSystem_win32.cpp b/debian/mp4v2/mp4v2-2.0.0~dfsg0/libplatform/io/FileSystem_win32.cpp deleted file mode 100644 index 4a213819..00000000 --- a/debian/mp4v2/mp4v2-2.0.0~dfsg0/libplatform/io/FileSystem_win32.cpp +++ /dev/null @@ -1,146 +0,0 @@ -#include "src/impl.h" -#include "libplatform/impl.h" /* for platform_win32_impl.h which declares Utf8ToFilename */ -#include <windows.h> - -namespace mp4v2 { - using namespace impl; -} - -namespace mp4v2 { namespace platform { namespace io { - -/////////////////////////////////////////////////////////////////////////////// - -static DWORD getAttributes ( string path_ ); - -/** - * Call GetFileAttributesW throw exceptions for errors - * - * @param path_ the path to get attributes for - * - * @retval INVALID_FILE_ATTRIBUTES @p path_ doesn't exist - * @retval anything else the attributes of @p path_ - */ -static DWORD -getAttributes ( string path_ ) -{ - win32::Utf8ToFilename filename(path_); - - if (!filename.IsUTF16Valid()) - { - // throw an exception to avoid changing the - // signature of this function and dealing with all - // the places it's called. - ostringstream msg; - msg << "can't convert file to UTF-16(" << filename.utf8 << ")"; - throw new Exception(msg.str(),__FILE__,__LINE__,__FUNCTION__); - } - - DWORD attributes = ::GetFileAttributesW(filename); - if( attributes == INVALID_FILE_ATTRIBUTES ) - { - DWORD last_err = GetLastError(); - - // Distinguish between an error and the path not existing - if ((last_err == ERROR_FILE_NOT_FOUND) || (last_err == ERROR_PATH_NOT_FOUND)) - { - return attributes; - } - - // Anything else is an error - ostringstream msg; - msg << "GetFileAttributes(" << filename.utf8 << ") failed (" << last_err << ")"; - throw new Exception(msg.str(),__FILE__,__LINE__,__FUNCTION__); - } - - // path exists so return its attributes - return attributes; -} - -bool -FileSystem::exists( string path_ ) -{ - return( getAttributes(path_) != INVALID_FILE_ATTRIBUTES ); -} - -/////////////////////////////////////////////////////////////////////////////// - -bool -FileSystem::isDirectory( string path_ ) -{ - DWORD attributes = getAttributes( path_ ); - if( attributes == INVALID_FILE_ATTRIBUTES ) - return false; - - return ( ( attributes & FILE_ATTRIBUTE_DIRECTORY ) == FILE_ATTRIBUTE_DIRECTORY ); -} - -/////////////////////////////////////////////////////////////////////////////// - -bool -FileSystem::isFile( string path_ ) -{ - DWORD attributes = getAttributes( path_ ); - if( attributes == INVALID_FILE_ATTRIBUTES ) - return false; - - return ( ( attributes & FILE_ATTRIBUTE_DIRECTORY ) != FILE_ATTRIBUTE_DIRECTORY ); -} - -/////////////////////////////////////////////////////////////////////////////// - -bool -FileSystem::getFileSize( string path_, File::Size& size_ ) -{ - win32::Utf8ToFilename filename(path_); - - if (!filename.IsUTF16Valid()) - { - // The logging is done - return true; - } - - size_ = 0; - WIN32_FILE_ATTRIBUTE_DATA data = {0}; - if( !GetFileAttributesExW( filename, GetFileExInfoStandard, (LPVOID)&data ) ) - { - log.errorf("%s: GetFileAttributesExW(%s) failed (%d)",__FUNCTION__,filename.utf8.c_str(), - GetLastError()); - return true; - } - - size_ = ( (File::Size)data.nFileSizeHigh << 32 ) | data.nFileSizeLow; - return false; -} - -/////////////////////////////////////////////////////////////////////////////// - -bool -FileSystem::rename( string from, string to ) -{ - win32::Utf8ToFilename from_file(from); - win32::Utf8ToFilename to_file(to); - - if (!from_file.IsUTF16Valid() || !to_file.IsUTF16Valid()) - { - return true; - } - - if (!::MoveFileExW( from_file, to_file, - MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH ) ) - { - log.errorf("%s: MoveFileExW(%s,%s) failed (%d)",__FUNCTION__,from_file.utf8.c_str(),to_file.utf8.c_str(), - GetLastError()); - return true; - } - - return false; -} - -/////////////////////////////////////////////////////////////////////////////// - -string FileSystem::DIR_SEPARATOR = "\\"; -string FileSystem::PATH_SEPARATOR = ";"; - -/////////////////////////////////////////////////////////////////////////////// - -}}} // namespace mp4v2::platform::io |