如何读取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";}
}
我一直在尝试使用 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";}
}