I have text files in my resource file and I'd like to be able to provide a path for this file to std::ifstream
. Neither :\file_name.txt
nor ..\file_name.txt
works.
Does anyone know how to fix it?
I have text files in my resource file and I'd like to be able to provide a path for this file to std::ifstream
. Neither :\file_name.txt
nor ..\file_name.txt
works.
Does anyone know how to fix it?
Qt resource files are not filesystem files. Those files are loaded in memory as static char arrays. You can see for yourself looking in your build directory for qrc_*.cpp files. You can get data from there if you want, or you might want to use QTextStream for reading those, using the QIODevice constructor with a QFile.
You don't specify what you want to do exactly, but this is a sample that reads what is inside the file:
#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;
}