Как писать и читать в / из файла QResource в Qt 5?

Странно, я добавляю нужный файл в ресурсы через Add Existing Files..., файл там. Я запускаю qmake ("Build->Run qmake"), чтобы сделать файл доступным. Первая проблема: я не могу ничего записать в файл с выходного терминала! Но когда я вручную записываю в файл, терминал вывода показывает изменения каждый раз, когда я запускаю его. Вторая проблема: все еще говорится, что QIODevice::read: устройство не открыто! Вот мой код:

#include <QCoreApplication>
#include <QDebug>
#include <QFile>
#include <QString>
#include <QTextStream>
#include <iostream>

void wFile(QString Filename)
{ 
  QFile  nFile(Filename);
  QTextStream str(&nFile);
  qDebug() << "what do you want to write in the desired file: ";
  str.readLine();
  if (!nFile.open(QFile::WriteOnly  | QFile::Text))
  {
    qDebug() << "could not open the file";
    return;
  }
  nFile.flush(); 
  nFile.close();
 }

void read (QString Filename){
  QFile nFile(Filename);

  if(!nFile.open(QFile::ReadOnly | QFile::Text))
  {
    qDebug() << "could not open file for reading";
    return;
  }
  QTextStream in(&nFile);
  QString nText = in.readAll();

  qDebug() << nText;
  nFile.close();
 }


int main(int argc, char *argv[])
{
 QCoreApplication a(argc, argv);
 QString nFilename =":/MyFiles/DocumentArminV.txt";

 wFile(nFilename);
 read(nFilename);

 return a.exec();
}

И вот выходной терминал кода: выход

1 ответ

Решение

Файлы, сохраненные в qresource, доступны только для чтения, так как они являются частью исполняемого файла, поэтому вы не можете писать или изменять их.

документы:

введите описание изображения здесь

В настоящее время Qt всегда сохраняет данные непосредственно в исполняемом файле, даже в Windows, macOS и iOS, где операционная система обеспечивает встроенную поддержку ресурсов. ...

Другие вопросы по тегам