我正在尝试将数据保存到Qt中的XML文件中。到处都被告知我需要编写这种检查:
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "Failed to open";
}
else
{
//write to file;
}
我总是得到“无法打开”的结果。我只是找不到任何东西。如果不使用此检查,则会出现此类错误:QIODevice :: write(QFile,“ D:/logs.xml”):设备未打开。我只是不知道该怎么办。这是我在教程中尝试使用的完整代码:
QDomDocument document;
// Making the root element
QDomElement root = document.createElement("Dorms");
// Adding the root element to the docuemnt
document.appendChild(root);
QFile file;
file.setFileName("D:/logs.xml");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "Failed to open";
}
else
{
QTextStream stream(&file);
stream << document.toString();
file.close();
qDebug() << "Done";
}
有人知道我该怎么做吗?
答案 0 :(得分:1)
问题可能是您无权在使用的目录D:/中创建文件。检查网址和权限。
P.S。对我来说这个例子是正确的
答案 1 :(得分:1)
您可以通过在file.errorString()
失败后调用file.open()
来获取确切的错误消息。我的猜测可能是访问权限错误。
答案 2 :(得分:1)
您在Windows中使用了错误的斜杠。
更改
file.setFileName("D:/logs.xml");
到
file.setFileName("D:\logs.xml");