Предоставление относительного пути к файлу - PullRequest
0 голосов
/ 11 декабря 2011

У меня есть текстовые файлы в моем файле ресурсов, и я хотел бы иметь возможность указать путь к этому файлу std::ifstream. Ни :\file_name.txt, ни ..\file_name.txt не работает.

Кто-нибудь знает, как это исправить?

1 Ответ

2 голосов
/ 11 декабря 2011

Файлы ресурсов Qt не являются файлами файловой системы. Эти файлы загружаются в память в виде статических массивов символов. Вы можете сами посмотреть в каталоге сборки файлы 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...