GME  13
FileHelp.cpp
Go to the documentation of this file.
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 }