Subversion Repositories spk

Rev

Rev 185 | Rev 197 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 185 Rev 196
Line 2... Line 2...
2
#define __FILE_IO_H__
2
#define __FILE_IO_H__
3
 
3
 
4
#pragma warning( push )
4
#pragma warning( push )
5
#pragma warning( disable : 4251)
5
#pragma warning( disable : 4251)
6
 
6
 
-
 
7
#include "Utils/WStringList.h"
7
#include "Utils/StringList.h"
8
#include "Utils/StringList.h"
8
#include <fstream>
9
#include <fstream>
9
#include <vector>
10
#include <vector>
10
#include "DirIO.h"
11
#include "DirIO.h"
11
 
12
 
Line 27... Line 28...
27
enum {FILEERR_NONE, FILEERR_NOFILE, FILEERR_NOOPEN, FILEERR_TOSMALL, FILEERR_NOWRITE};
28
enum {FILEERR_NONE, FILEERR_NOFILE, FILEERR_NOOPEN, FILEERR_TOSMALL, FILEERR_NOWRITE};
28
 
29
 
29
class SPKEXPORT CFileIO
30
class SPKEXPORT CFileIO
30
{
31
{
31
public:
32
public:
32
	static bool Remove(const Utils::String &filename);
33
	static bool Remove(const Utils::WString &filename);
33
	static bool Exists(const Utils::String &filename);
34
	static bool Exists(const Utils::WString &filename);
34
 
35
 
35
public:
36
public:
36
	CFileIO();
37
	CFileIO();
37
	CFileIO(const Utils::String &sFilename, bool bBinary);
38
	CFileIO(const Utils::WString &sFilename, bool bBinary);
38
	CFileIO(const Utils::String &filename);
39
	CFileIO(const Utils::WString &filename);
39
	CFileIO(C_File *file);
40
	CFileIO(C_File *file);
40
	~CFileIO ();
41
	~CFileIO ();
41
 
42
 
42
	bool startWrite();
43
	bool startWrite();
43
	bool startRead();
44
	bool startRead();
Line 80... Line 81...
80
	size_t readLines(Utils::CStringList& to) const;
81
	size_t readLines(Utils::CStringList& to) const;
81
	Utils::CStringList *readLinesStr();
82
	Utils::CStringList *readLinesStr();
82
 
83
 
83
	bool writeFile(std::vector<Utils::String> *lines);
84
	bool writeFile(std::vector<Utils::String> *lines);
84
	bool writeFileUTF(std::vector<Utils::String> *lines);
85
	bool writeFileUTF(std::vector<Utils::String> *lines);
85
	bool writeFile(Utils::CStringList *lines);
86
	bool writeFile(Utils::CStringList* lines);
-
 
87
	bool writeFile(Utils::WStringList* lines);
86
 
88
 
87
	bool remove();
89
	bool remove();
88
	bool Rename(const Utils::String &toFile);
90
	bool Rename(const Utils::WString &toFile);
89
	bool copy(const Utils::String &toFile, bool keepTime = false);
91
	bool copy(const Utils::WString &toFile, bool keepTime = false);
90
 
92
 
91
	bool isOpened() const;
93
	bool isOpened() const;
92
	bool open(const Utils::String &sFilename, bool bBinary = true);
94
	bool open(const Utils::WString& sFilename, bool bBinary = true);
93
 
95
 
94
	Utils::String baseName() const;
96
	Utils::WString baseName() const;
95
	const Utils::String &;fullFilename() const { return _sFilename; }
97
	const Utils::WString&; fullFilename() const;
96
	const Utils::String &;filename() const { return _sFile; }
98
	const Utils::WString&; filename() const;
97
	const Utils::String &dir() const { return _sDirIO.dir(); }
99
	const Utils::WString& dir() const { return _sDirIO.dir(); }
-
 
100
 
-
 
101
	//TODO: remove these
-
 
102
	const Utils::String fullFilenameStr() const;
-
 
103
	const Utils::String filenameStr() const;
-
 
104
	const Utils::String dirStr() const { return _sDirIO.dir().toString(); }
98
	CDirIO &GetDirIO() { return _sDirIO; }
105
	CDirIO &GetDirIO() { return _sDirIO; }
99
 
106
 
100
	bool NoFile () { return _sFilename.empty(); }
107
	bool NoFile () { return _sFilename.empty(); }
101
	size_t GetFilesize () { return m_lSize; }
108
	size_t GetFilesize () { return m_lSize; }
102
 
109
 
103
	char *ReadToData ( size_t *size );
110
	char *ReadToData ( size_t *size );
104
	bool WriteData ( const char *data, size_t size );
111
	bool WriteData ( const char *data, size_t size );
105
	bool writeString ( const Utils::String &data );
112
	bool writeString ( const Utils::String &data );
106
 
113
 
107
	bool WritePartFile ( size_t *offsets, size_t numOffset );
114
	bool WritePartFile ( size_t *offsets, size_t numOffset );
108
	int TruncateFile ( size_t offset, size_t datasize );
115
	int TruncateFile ( size_t offset, size_t datasize );
109
	bool WipeFile();
116
	bool WipeFile();
110
	
117
	
111
	bool exists() const;
118
	bool exists() const;
112
	bool ExistsOld () const;
119
	bool ExistsOld () const;
113
	bool appendFile ( const Utils::String &filename );
120
	bool appendFile ( const Utils::String &filename );
114
	bool AppendData ( const char *d, size_t size );
121
	bool AppendData ( const char *d, size_t size );
115
	bool AppendDataToPos ( const char *d, size_t size, size_t start );
122
	bool AppendDataToPos ( const char *d, size_t size, size_t start );
116
 
123
 
117
	bool isFileExtension(const Utils::String &ext) { return (extension().Compare(ext)) ? true : false; }
124
	bool isFileExtension(const Utils::WString &ext) { return (extension().Compare(ext)) ? true : false; }
118
 
125
 
119
	Utils::String extension() const;
126
	Utils::WString extension() const;
120
	Utils::String getWindowsFilename() const;
127
	Utils::WString getWindowsFilename() const;
121
	Utils::String changeFileExtension(const Utils::String &ext) const;
128
	Utils::WString changeFileExtension(const Utils::WString &ext) const;
122
 
129
 
123
	void setDir(const Utils::String &dir);
130
	void setDir(const Utils::WString &dir);
124
	void setAutoDelete(bool bDelete);
131
	void setAutoDelete(bool bDelete);
125
 
132
 
126
private:
133
private:
127
	int _in() const;
134
	int _in() const;
128
	int _out() const;
135
	int _out() const;
129
	int _append() const;
136
	int _append() const;
130
	int _inout() const;
137
	int _inout() const;
Line 134... Line 141...
134
	void _seek(int iPos, int iFrom);
141
	void _seek(int iPos, int iFrom);
135
 
142
 
136
	bool _write(const char *buf, va_list args);
143
	bool _write(const char *buf, va_list args);
137
 
144
 
138
	void _updateFilename();
145
	void _updateFilename();
-
 
146
 
-
 
147
	const char* _fileData() const;
-
 
148
	static const char* _toFileData(const Utils::WString &str);
139
 
149
 
140
private:
150
private:
141
	Utils::String	_sFilename;
151
	Utils::WString	_sFilename;
142
	Utils::String	_sFile;
152
	Utils::WString	_sFile;
143
	Utils::String	_sExt;
153
	Utils::WString	_sExt;
144
	CDirIO			_sDirIO;
154
	CDirIO			_sDirIO;
145
 
155
 
146
	bool m_bSeekP;
156
	bool m_bSeekP;
147
	bool m_bBinary;
157
	bool m_bBinary;
148
	bool m_bAutoDelete;
158
	bool m_bAutoDelete;