问题:在file中用WriteString写入字符串时出现原始数据被覆盖的现象
解决办法:
1 在file.Open()中加入 CFile::modeNoTruncate,表示不清除原内容;
2 在file.WriteString(); 前加入file.SeekToEnd();,意思是将新建的内容加到最后;
举例:
CString path = AfxGetApp()->GetProfileString("File", "Name", "*txt");
// 创建文档选择窗口
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, "TXT Files (*.txt)|*.txt||", this);
dlg.m_ofn.lpstrFile = path.GetBufferSetLength(MAX_PATH);
// 打开对应文件的窗口
if (dlg.DoModal() != IDOK) return;
CStdioFile file;
CString filepath,filename;
filepath=path;
filename=dlg.GetFileName(); //文件名
filename=filepath+filename; //文件路径
file.Open(filename,CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate);
file.SeekToEnd();
file.WriteString(strText);
file.Close();