Rev 1 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifndef __FILE_IO_H__#define __FILE_IO_H__#include "CyString.h"#include "StringList.h"#include <fstream>#include <vector>#include "DirIO.h"#include <time.h>#if defined(_WIN32) || defined(OS2) || defined(MSDOS)#include <fcntl.h>#include <io.h>#define MY_SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY)#else#define MY_SET_BINARY_MODE(file)#endif#define EPOCH_DIFF 0x019DB1DED53E8000LL /* 116444736000000000 nsecs */#define RATE_DIFF 10000000 /* 100 nsecs */class C_File;enum {FILEERR_NONE, FILEERR_NOFILE, FILEERR_NOOPEN, FILEERR_TOSMALL, FILEERR_NOWRITE};class SPKEXPORT CFileIO{public:CFileIO ();CFileIO ( CyString filename );CFileIO ( C_File *file );~CFileIO ();bool StartRead();bool StartReadOld();void StopRead();CyString ReadToEndLine(bool = true);bool AtEnd();time_t GetCreationTime();void SetCreationTime(time_t time);std::vector<CyString> *ReadLines();CyStringList *ReadLinesStr();bool WriteFile(std::vector<CyString> *lines);bool WriteFileUTF(std::vector<CyString> *lines);bool WriteFile(CyStringList *lines);bool Remove();bool Rename(CyString toFile);bool Copy(CyString toFile, bool keepTime = false);bool IsOpened();bool Open ( CyString filename, bool = true );void ReadFileSize ();CyString GetBaseName();CyString GetFullFilename () { return m_sFilename; }CyString GetFilename () { return m_sFile; }CyString GetDir() { return m_sDirIO.Dir(); }CDirIO &GetDirIO() { return m_sDirIO; }bool NoFile () { return m_sFilename.Empty(); }size_t GetFilesize () { return m_lSize; }char *ReadToData ( size_t *size );bool WriteData ( const char *data, size_t size );bool WriteString ( CyString data );bool WritePartFile ( size_t *offsets, size_t numOffset );int TruncateFile ( size_t offset, size_t datasize );bool WipeFile();bool Exists ();bool AppendFile ( CyString filename );bool AppendData ( const char *d, size_t size );bool AppendDataToPos ( const char *d, size_t size, size_t start );bool CheckFileExtension(CyString ext) { return (GetFileExtension().Compare(ext)) ? true : false; }CyString GetFileExtension ();CyString ChangeFileExtension ( CyString ext );CyString GetWindowsFilename();void SetDir ( CyString dir );private:CyString m_sFilename;CyString m_sFile;CDirIO m_sDirIO;bool m_bOpened;bool m_bBinary;std::ifstream m_fId;FILE *m_fIdOld;size_t m_lSize;};#endif //__FILE_IO_H__