00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef ZenLib_FileH
00015 #define ZenLib_FileH
00016
00017
00018
00019 #include "ZenLib/Ztring.h"
00020
00021
00022
00023 namespace ZenLib
00024 {
00025
00026
00027
00028
00029
00030 class File
00031 {
00032 public :
00033
00034
00035 enum access_t
00036 {
00037 Access_Read = 0,
00038 Access_Write = 1,
00039 Access_Read_Write = 2,
00040 Access_Write_Append = 3,
00041 Access_Write_Excluding = 4
00042 };
00043
00044
00045
00046 enum move_t
00047 {
00048 FromBegin = 0,
00049 FromCurrent = 1,
00050 FromEnd = 2
00051 };
00052
00053
00054 File ();
00055 File (ZenLib::Ztring File_Name, access_t Access=Access_Read);
00056 ~File ();
00057
00058
00059 bool Open (const tstring &File_Name, access_t Access=Access_Read);
00060 bool Create(const ZenLib::Ztring &File_Name, bool OverWrite=true);
00061 void Close ();
00062
00063
00064 size_t Read (int8u* Buffer, size_t Buffer_Size);
00065 size_t Write (const int8u* Buffer, size_t Buffer_Size);
00066 size_t Write (const Ztring &ToWrite);
00067 bool Truncate (int64u Offset=(int64u)-1);
00068
00069
00070 bool GoTo (int64s Position, move_t MoveMethod=FromBegin);
00071 int64u Position_Get ();
00072
00073
00074 int64u Size_Get();
00075 Ztring Created_Get();
00076 Ztring Created_Local_Get();
00077 Ztring Modified_Get();
00078 Ztring Modified_Local_Get();
00079 bool Opened_Get();
00080
00081
00082 static int64u Size_Get(const Ztring &File_Name);
00083 static Ztring Created_Get(const Ztring &File_Name);
00084 static Ztring Modified_Get(const Ztring &File_Name);
00085 static bool Exists(const Ztring &File_Name);
00086 static bool Copy(const Ztring &Source, const Ztring &Destination, bool OverWrite=false);
00087 static bool Move(const Ztring &Source, const Ztring &Destination, bool OverWrite=false);
00088 static bool Delete(const Ztring &File_Name);
00089
00090
00091 Ztring File_Name;
00092 int64u Position;
00093 int64u Size;
00094 void* File_Handle;
00095 };
00096
00097 }
00098
00099 #endif