如何读取QFile?它显示该文件不可访问

How to read from QFile? It shows that file not accessible

我一直在尝试使用 QFile 读取 .xml 文件。但是qt creator甚至找不到它,但是文件存在于项目中(我也尝试从另一个目录而不是项目的目录中读取它,它也不起作用)。调试器说文件不可访问。

这是我的代码:

QFile file("../info.xml");
if (file.exists())
    if (file.open(QFile::ReadOnly | QFile::Text))
        qDebug(qPrintable("File exist"));

这不是一个完整的答案,而是一个可能出错的列表。

  • 检查文件路径:
    QFileInfo inf (file);
    qDebug() << inf.QFileInfo::path();
  • 确保文件位于正确的目录中,即与您的 .exe (build-ProjectName-...) 相同。您可以使用 QDir::currentPath()

    进行检查
  • 检查是哪个 if 导致了问题:是第一个检查文件是否存在还是第二个无法打开它?

  • 我不确定对 .xml 文件使用 QFile::Text 是个好主意。

最后,我会做这样的事情:

QFile file("../info.xml");
QFileInfo inf (file);
qDebug() << "File path : "<< inf.QFileInfo::path() << Qt::endl;
qDebug() << "Current path : " << QDir::currentPath() << Qt::endl;
qDebug() << "Current path (expected) : " << QDir::currentPath() + "/info.xml" << Qt::endl;
if (file.exists()){
    qDebug() << "exists" << Qt::endl;
    if (file.open(QFile::ReadOnly)){qDebug() << "opened";}
    
}