提供相对文件路径

时间:2011-12-11 11:05:38

标签: c++ qt file-io

我的资源文件中有文本文件,我希望能够为std::ifstream提供此文件的路径。 :\file_name.txt..\file_name.txt都不起作用。

有谁知道如何修复它?

1 个答案:

答案 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;
}