2010-08-14 216 views
5

我試圖打開文件並將一些文本數據寫入它。QFile打開文件寫入失敗

QFile out(":/test.txt"); 
if (!out.open(QIODevice::ReadWrite)) { 
    QMessageBox msgBox; 
    msgBox.setText(out.errorString()); 
    msgBox.exec(); 
    return; 
} 

但它失敗並顯示「未知錯誤」。 (Qt的4.6,Wnidows XP SP3)

+0

如果你只是想寫,使用WriteOnly。 (但是,無論如何,這並不適用於資源文件,正如Roku解釋的那樣)。 – 2010-08-14 11:25:42

回答

8

「:/test.txt」是嵌入到可執行resource file的名字,你不能寫它。將文件名更改爲「C:/test.txt」。

+0

一些信息也在[http://www.developer.nokia.com/Community/Wiki/How_to_write_data_to_a_file_in_Qt](http://www.developer.nokia.com/Community/Wiki/How_to_write_data_to_a_file_in_Qt)。 – meolic 2012-08-28 08:30:43

0

的問題是在這條線:

QFile時出( 「:/ test.txt的」);

文件路徑錯誤。要在可執行文件所在的同一目錄中創建文件,請嘗試以下方式:

QFile out(「./ test.txt」);

編輯:拼寫

+1

這可能與可執行文件不同,但是工作目錄。 – 2010-08-14 11:24:35

1

你需要改變你的一個QFile構造函數的參數

QFile out(":/test.txt");

到正確的路徑,可能是

QFile out("./test.txt");

QFile out("C:/test.txt");