我正在尝试在QT中编辑.txt文件。我在test.txt文件中写入数据,每当我写入新数据时它会删除以前的数据。我正在寻找的是:
检查文件是否存在。
如果是,则通过将新数据插入带有时间戳的文件中来更新文件
如果没有,则创建新文件并插入数据。
void writefile(QString Filename)
{
QFile mFile(Filename);
if(!mFile.open(QFile::WriteOnly | QFile::Text))
{
qDebug() << "Not open file";
return;
}
// we can use stream instead of OUT FOR OUTPUT
QTextStream out(&mFile);
out << PCAN_DEVICE_NUMBER << ", " << PCAN_HARDWARE_NAME ;
// mFile.flush();
mFile.close();
答案 0 :(得分:2)
您必须将文件打开命令属性更改为(QFile::Append|QFile::Text)
,
因为QFile::WriteOnly
意味着QFile::Truncate
。
mFile.open(QFile::Append | QFile::Text)
您可以查看QIODevice
的文档:
http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum
答案 1 :(得分:0)
使用append标志打开文件
!mFile.open(QFile::WriteOnly | QFile::Text | QIODevice::Append)