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