Subversion Repositories spk

Rev

Rev 227 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 227 Rev 285
Line 153... Line 153...
153
 
153
 
154
bool CFileIO::WritePartFile ( size_t *offsets, size_t numOffset )
154
bool CFileIO::WritePartFile ( size_t *offsets, size_t numOffset )
155
{
155
{
156
	if ( NoFile() )	return false;
156
	if ( NoFile() )	return false;
157
 
157
 
158
	std::fstream File(_sFilename, _in());
158
	std::fstream File(_sFilename.toStdWString(), _in());
159
	if ( !File.is_open() ) return false;
159
	if ( !File.is_open() ) return false;
160
 
160
 
161
	// first find file size
161
	// first find file size
162
	File.seekg(0, std::ios::end);
162
	File.seekg(0, std::ios::end);
163
	size_t fullsize = static_cast<size_t>(File.tellg()), size = fullsize;
163
	size_t fullsize = static_cast<size_t>(File.tellg()), size = fullsize;
164
	File.seekg(0, std::ios::beg);
164
	File.seekg(0, std::ios::beg);
165
 
165
 
166
	std::fstream writeFile(CPackages::tempDirectory() + "/temp.tmp", _out());
166
	std::fstream writeFile((CPackages::tempDirectory() + "/temp.tmp").toStdWString(), _out());
167
	if ( !File.is_open() ) {
167
	if ( !File.is_open() ) {
168
		File.close();
168
		File.close();
169
		return false;
169
		return false;
170
	}
170
	}
171
 
171
 
Line 230... Line 230...
230
 
230
 
231
void CFileIO::_readFileSize ()
231
void CFileIO::_readFileSize ()
232
{
232
{
233
	m_lSize = 0;
233
	m_lSize = 0;
234
 
234
 
235
	std::fstream file(_sFilename, (m_bBinary) ? (std::ios::in | std::ios::binary) : (std::ios::in));
235
	std::fstream file(_sFilename.toStdWString(), (m_bBinary) ? (std::ios::in | std::ios::binary) : (std::ios::in));
236
	if ( !file.is_open() ) return;
236
	if ( !file.is_open() ) return;
237
 
237
 
238
	file.seekg(0, std::ios::end);
238
	file.seekg(0, std::ios::end);
239
	m_lSize = static_cast<size_t>(file.tellg());
239
	m_lSize = static_cast<size_t>(file.tellg());
240
	file.close();
240
	file.close();
Line 242... Line 242...
242
 
242
 
243
bool CFileIO::WipeFile()
243
bool CFileIO::WipeFile()
244
{
244
{
245
	if ( NoFile() )	return false;
245
	if ( NoFile() )	return false;
246
	std::ofstream file;
246
	std::ofstream file;
247
	file.open(_sFilename, std::ios::out | std::ios::trunc);
247
	file.open(_sFilename.toStdWString(), std::ios::out | std::ios::trunc);
248
	bool bDone = file.is_open();
248
	bool bDone = file.is_open();
249
	file.close();
249
	file.close();
250
 
250
 
251
	return bDone;
251
	return bDone;
252
}
252
}
Line 323... Line 323...
323
 
323
 
324
	if ( NoFile() ) return NULL;
324
	if ( NoFile() ) return NULL;
325
	if ( !m_lSize )	this->_readFileSize();
325
	if ( !m_lSize )	this->_readFileSize();
326
	if ( !m_lSize ) return NULL;
326
	if ( !m_lSize ) return NULL;
327
 
327
 
328
	std::fstream file(_sFilename, _in());
328
	std::fstream file(_sFilename.toStdWString(), _in());
329
	if ( !file.is_open() ) return NULL;
329
	if ( !file.is_open() ) return NULL;
330
 
330
 
331
	char *data;
331
	char *data;
332
	try {
332
	try {
333
		data = new char[m_lSize + 1];
333
		data = new char[m_lSize + 1];
Line 381... Line 381...
381
	return WriteData ( data.c_str(), data.length() );
381
	return WriteData ( data.c_str(), data.length() );
382
}
382
}
383
 
383
 
384
bool CFileIO::Exists(const Utils::WString &filename)
384
bool CFileIO::Exists(const Utils::WString &filename)
385
{
385
{
386
	std::wfstream File(filename, std::ios::in | std::ios::binary);
386
	std::wfstream File(filename.toStdWString(), std::ios::in | std::ios::binary);
387
	bool bRet = File.good();
387
	bool bRet = File.good();
388
	File.close();
388
	File.close();
389
	return bRet;
389
	return bRet;
390
}
390
}
391
 
391
 
392
bool CFileIO::exists () const
392
bool CFileIO::exists () const
393
{
393
{
394
	if ( this->isOpened() ) return true;
394
	if ( this->isOpened() ) return true;
395
	std::fstream File(_sFilename, _in());
395
	std::fstream File(_sFilename.toStdWString(), _in());
396
	bool bRet = File.good();
396
	bool bRet = File.good();
397
	File.close();
397
	File.close();
398
	return bRet;
398
	return bRet;
399
}
399
}
400
 
400
 
Line 421... Line 421...
421
bool CFileIO::_start(int iFlags, bool bSeekP)
421
bool CFileIO::_start(int iFlags, bool bSeekP)
422
{
422
{
423
	if ( !_sFilename.empty() ) {
423
	if ( !_sFilename.empty() ) {
424
		if ( this->isOpened() ) this->close();
424
		if ( this->isOpened() ) this->close();
425
 
425
 
426
		m_fId.open(_sFilename, iFlags);
426
		m_fId.open(_sFilename.toStdWString(), iFlags);
427
	}
427
	}
428
	m_bSeekP = bSeekP;
428
	m_bSeekP = bSeekP;
429
	return m_fId.is_open();
429
	return m_fId.is_open();
430
}
430
}
431
 
431
 
Line 704... Line 704...
704
bool CFileIO::appendFile ( const Utils::String &filename )
704
bool CFileIO::appendFile ( const Utils::String &filename )
705
{
705
{
706
	std::fstream fromFile(filename, _in());
706
	std::fstream fromFile(filename, _in());
707
	if ( !fromFile.is_open() ) return false;
707
	if ( !fromFile.is_open() ) return false;
708
 
708
 
709
	std::fstream toFile(_sFilename, _append());
709
	std::fstream toFile(_sFilename.toStdWString(), _append());
710
	if ( !toFile.is_open() ) {
710
	if ( !toFile.is_open() ) {
711
		fromFile.close();
711
		fromFile.close();
712
		return false;
712
		return false;
713
	}
713
	}
714
 
714
 
Line 739... Line 739...
739
}
739
}
740
 
740
 
741
 
741
 
742
bool CFileIO::AppendData ( const char *d, size_t size )
742
bool CFileIO::AppendData ( const char *d, size_t size )
743
{
743
{
744
	std::ofstream File(_sFilename, _append());
744
	std::ofstream File(_sFilename.toStdWString(), _append());
745
	if ( !File.is_open() ) return false;
745
	if ( !File.is_open() ) return false;
746
 
746
 
747
	// move to the end of the file
747
	// move to the end of the file
748
	//File.seekg(0, std::ios::end);
748
	//File.seekg(0, std::ios::end);
749
 
749
 
Line 1144... Line 1144...
1144
{
1144
{
1145
	return _toFileData(_sFilename);
1145
	return _toFileData(_sFilename);
1146
}
1146
}
1147
std::string CFileIO::_toFileData(const Utils::WString &str)
1147
std::string CFileIO::_toFileData(const Utils::WString &str)
1148
{
1148
{
1149
#pragma warning(disable:4244)
-
 
1150
	return std::string(str.begin(), str.end());
1149
	return str.toFileUTF8();
1151
#pragma warning(default:4244)
-
 
1152
}
1150
}