GME
13
|
00001 #include "stdafx.h" 00002 #include "FileHelp.h" 00003 00004 00005 // FileHelp 00006 bool FileHelp::fileExist( const std::string& p_file) 00007 { 00008 FILE * f = fopen( p_file.c_str(), "r"); 00009 if( !f) 00010 return false; 00011 00012 fclose( f); 00013 return true; 00014 } 00015 00016 bool FileHelp::isFile( const std::string& p_file) 00017 { 00018 WIN32_FILE_ATTRIBUTE_DATA attr; 00019 00020 if( GetFileAttributesEx( p_file.c_str(), GetFileExInfoStandard, &attr ) ) 00021 { 00022 return FILE_ATTRIBUTE_DIRECTORY != ( attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); 00023 } 00024 00025 return false; 00026 } 00027 00028 bool FileHelp::isDir( const std::string& p_path) 00029 { 00030 WIN32_FILE_ATTRIBUTE_DATA attr; 00031 00032 if( GetFileAttributesEx( p_path.c_str(), GetFileExInfoStandard, &attr ) ) 00033 { 00034 return FILE_ATTRIBUTE_DIRECTORY == ( attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); 00035 } 00036 00037 return false; 00038 } 00039 00040 bool FileHelp::isFileReadOnly( const std::string& p_file) 00041 { 00042 WIN32_FILE_ATTRIBUTE_DATA attr; 00043 00044 if( GetFileAttributesEx( p_file.c_str(), GetFileExInfoStandard, &attr ) ) 00045 { 00046 return attr.dwFileAttributes & FILE_ATTRIBUTE_READONLY; 00047 } 00048 00049 return false; 00050 } 00051 00052 bool FileHelp::isFileReadOnly2( const std::string& p_file, bool* p_ptrFileExists) 00053 { 00054 WIN32_FILE_ATTRIBUTE_DATA attr; 00055 ASSERT( p_ptrFileExists); // valid pointer 00056 00057 if( GetFileAttributesEx( p_file.c_str(), GetFileExInfoStandard, &attr ) ) 00058 { 00059 if( p_ptrFileExists) // pointer not zero 00060 *p_ptrFileExists = true; 00061 return attr.dwFileAttributes & FILE_ATTRIBUTE_READONLY; 00062 } 00063 00064 return false; 00065 } 00066 00067 bool FileHelp::isFileReadWrite( const std::string& p_file) // is a file and is read write 00068 { 00069 WIN32_FILE_ATTRIBUTE_DATA attr; 00070 00071 if( GetFileAttributesEx( p_file.c_str(), GetFileExInfoStandard, &attr ) ) 00072 { 00073 return (attr.dwFileAttributes & FILE_ATTRIBUTE_READONLY) != FILE_ATTRIBUTE_READONLY 00074 && (attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != FILE_ATTRIBUTE_DIRECTORY; 00075 } 00076 00077 return false; 00078 }