一、前言
本文将采用对比说明的方式,来表达出 modeNoTruncate 参数的作用,从而做到快速理解。
二、讲解
1. 参数功能:
使用CFile::modeNoTruncate的模式,可以简单理解为:用新代码去替换掉原代码的一部分。
2. 对比说明:
代码 ①:
m_file.Open(strFilePathC,CFile::modeCreate|CFile::modeReadWrite);
包含 modeNoTruncate
上面代码的意思为:用modeCreate模式创建和打开一个文件,假如这个文件已经存在,则会清空这个已经存在的文件。
代码 ②:
m_file.Open(strFilePathC,CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate);
不包含 modeNoTruncate
上面的代码的意思是:用modeCreate模式创建和打开一个文件,假如这个文件已经存在,不清空这个文件了。
3. 举例:
如果原有文件大小为100K,你现在需要写入80K的数据。
使用第一段代码,会先把文件大小重置为0,再写入80K数据,最后文件长度为80K。
使用第二段代码,则直接写入80K数据,最终文件长度还是100K。数据为前部分80K新数据和后部20K旧数据。