我的资源文件中有文本文件,我希望能够为std::ifstream
提供此文件的路径。 :\file_name.txt
和..\file_name.txt
都不起作用。
有谁知道如何修复它?
答案 0 :(得分:2)
Qt资源文件不是文件系统文件。这些文件作为静态char数组加载到内存中。您可以在自己的构建目录中查看qrc _ * .cpp文件。如果需要,您可以从那里获取数据,或者您可以使用QTextStream构造函数QIODevice来使用QFile来阅读这些数据。
您没有指定要完全执行的操作,但这是一个读取文件内部内容的示例:
#include <QtCore/QCoreApplication>
#include <QTextStream>
#include <QFile>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile file(":/test.txt");
QTextStream stream(&file);
if (!file.open(QIODevice::ReadOnly)) {
qFatal("Failed to open file.");
return -1;
}
QString text = stream.readAll();
if (text.isNull()) {
qDebug("Failed to read file.");
return -1;
}
qDebug("File content is: %s. Bye bye.", qPrintable(text));
return 0;
}