D:/Zythum/DinoKod/Common/File.h

00001 #ifndef __FILE_H__
00002 #define __FILE_H__
00003 
00004 #include "Common/CommonDll.h"
00005 #include "Common/Types.h"
00006 #include "Common/Str.h"
00007 
00008 //--------------------------------------------------------------------------------------------------------------------------
00009 typedef enum _KFILEMODE
00010 {
00011         KFM_READ,
00012         KFM_WRITE,
00013         KFM_READWRITE
00014 } KFILEMODE;
00015 
00016 typedef enum _KFILESEEK
00017 {
00018         KFS_BEGIN,
00019         KFS_CURRENT,
00020         KFS_END
00021 } KFILESEEK;
00022 
00023 //--------------------------------------------------------------------------------------------------------------------------
00024 class COMMON_API KFileTime
00025 {
00026 public:
00027         u32                     m_Size;
00028         u32                     m_Year;
00029         u32                     m_Month;
00030         u32                     m_Day;
00031         u32                     m_Hour;
00032         u32                     m_Minute;
00033         u32                     m_Second;
00034 
00035         KFileTime()
00036         {
00037                 m_Size          = 0;
00038                 m_Year          = 0;
00039                 m_Month         = 0;
00040                 m_Day           = 0;
00041                 m_Hour          = 0;
00042                 m_Minute        = 0;
00043                 m_Second        = 0;
00044         }
00045 };
00046 
00047 //--------------------------------------------------------------------------------------------------------------------------
00048 class COMMON_API KFile
00049 {
00050 protected:
00051         void*                                           m_hFile;
00052         int                                                     m_bEOF;
00053         KFILEMODE                                       m_Mode;
00054         KStr                                            m_sFileName;
00055                                                                 
00056 public:                                                 
00057                                                                 KFile();
00058                                                                 
00059         int                                                     Create( KStr sFileName, KFILEMODE Mode = KFM_READWRITE );
00060         int                                                     Open( KStr sFileName, KFILEMODE Mode = KFM_READ );
00061         int                                                     Close();
00062         int                                                     Read( unsigned char* pBuffer, unsigned long ByteToRead, unsigned long* pByteRead = NULL );
00063         int                                                     Write( unsigned char* pBuffer, unsigned long ByteToWrite, unsigned long* pByteWrite = NULL );
00064         int                                                     Rewind();
00065         int                                                     Seek( long Distance, KFILESEEK SeekMode );
00066         int                                                     Tell( unsigned long* pCurrentPos );
00067         int                                                     ReadChar( char* pChar );
00068         int                                                     ReadString( KStr& sString );
00069         int                                                     WriteString( KStr& sString );
00070         int                                                     ReadText( KStr& sString );
00071         int                                                     WriteText( KStr& sString );
00072         int                                                     GetSize();
00073         int                                                     GetLastWriteTime( KFileTime* pFileTime );
00074                                                                 
00075         int                                                     IsEOF()         { return m_bEOF;                        }
00076         int                                                     Reset();
00077         KFILEMODE                                       GetMode()       { return m_Mode;                        }
00078         KStr&                                           GetsFileName()  { return m_sFileName;   }
00079 
00080         static char*                            GetFileExtension( char* pFileName );
00081         static char*                            GetFileName( char* pFileName );
00082                                                                 
00083         template <class T> KFile&       operator >>( T& Data ) { Read( (unsigned char*)&Data, sizeof( Data ) ); return *this; };
00084         template <class T> KFile&       operator <<( T& Data ) { Write( (unsigned char*)&Data, sizeof( Data ) ); return *this; };
00085 };
00086 
00087 #endif  __FILE_H__

Generated on Sun Mar 25 20:02:10 2007 for Zythum Project by  doxygen 1.5.1-p1