2013-04-27 638 views
8

我有下面的代碼。我正在使用Qt_5_0_2_MSVC2012_64bit-Release。我無法讀取文件。我收到「無法打開文件進行讀取」的調試錯誤消息。資源文件對我來說存在一些問題。任何想法如何解決它?謝謝!在Qt資源系統中讀取和寫入文件(qt 5.0.2)

#include <QCoreApplication> 
#include <QFile> 
#include <QString> 
#include <QDebug> 
#include <QTextStream> 
#include <QResource> 
#include <QIODevice> 


void Read(QString Filename){ 
    QFile mFile(Filename); 

    if(!mFile.open(QFile::ReadOnly | QFile::Text)){ 
     qDebug() << "could not open file for read"; 
     return; 
    } 

     QTextStream in(&mFile); 
     QString mText = in.readAll(); 

     qDebug() << mText; 

     mFile.close(); 



} 
int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    Read(":/MyFiles/myfile.txt"); 
    return a.exec(); 
} 
+2

1)添加mFile.errorString()到您的調試輸出更多地瞭解確切的原因2)添加QRC文件的內容 – 2013-04-27 14:31:41

+0

請注意,Qt資源一旦編譯就可以讀取但不能寫入。 – 2015-02-24 18:57:42

回答

2

test.pro

TEMPLATE = app 
TARGET = test 
INCLUDEPATH += . 

# Input 
SOURCES += main.cpp 
RESOURCES += test.qrc 

test.qrc

<!DOCTYPE RCC><RCC version="1.0"> 
<qresource> 
    <file>MyFiles/myfile.txt</file> 
</qresource> 
</RCC> 

main.cpp是從你的問題。工作正常。這就是說,如果你仍然有問題,你應該發佈最小的Qt項目(包括.pro和.qrc文件),這有錯誤。

3

我有同樣的問題。錯誤字符串是「未知錯誤」。
的解決方案是從@加託的答案添加INCLUDEPATH += .,從菜單中運行命令:

1. Build -> Clean all 
2. Build -> Run qmake 
3. Build -> Rebuild All