我想使用以下代码将两个文件保存到dir中:
QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),QDesktopServices::storageLocation(QDesktopServices::DesktopLocation),
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
QFile file(dir.append("/GlobalMessage.txt"));
if(file.open(QIODevice::WriteOnly | QIODevice::Text)){
QTextStream out(&file);
for (int i=0;i<t_global.size();i++){
out << t_global[i]<<" "<<y_lat.y[i]<<" "<<y_lng.y[i]<<" "<<y_alt.y[i]<<" "<<y_vx.y[i]<<" "<<y_vy.y[i]<<" "<<y_vz.y[i]<<"\n";
}
}
// optional, as QFile destructor will already do it:
file.close();
file.setFileName(dir.append("/AttitudeMessage.txt"));
if(file.open(QIODevice::WriteOnly | QIODevice::Text)){
QTextStream out(&file);
for (int i=0;i<t_attitude.size();i++){
out << t_attitude[i]<<" "<<y_roll.y[i]<<" "<<y_pitch.y[i]<<" "<<y_yaw.y[i]<<"\n";
}
}
file.close();但是,第二个file.open()总是fail.What是重用这个文件对象的正确方式吗?
发布于 2014-11-14 21:55:47
append更改了底层QString。
这是程序中file.filename()的输出:
"/tmp/GlobalMessage.txt"
"/tmp/GlobalMessage.txt/AttitudeMessage.txt"只管用
QFile file(dir + "/GlobalMessage.txt");和
file.setFileName(dir + "/AttitudeMessage.txt");发布于 2014-11-14 21:56:22
这可能是您生成的路径中的一个问题,因为这段代码实际上适用于我:
QFile file("d:\\a.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << file.readAll();
file.close();
file.setFileName("d:\\b.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << file.readAll();
}
}编辑:是的,西蒙先发现了,你附加的太多了。
https://stackoverflow.com/questions/26938417
复制相似问题