2011-05-25 67 views
1

我有一個資源文件Qt的資源文件

<RCC> 
    <qresource prefix="/"> 
     <file>_initData</file> 
     <file>_LOGFILE</file> 
    </qresource> 
</RCC> 

在我的代碼我輕鬆訪問的第一個,但不能訪問第二。

QFile file(":/_initData"); 
if (!file.open(QIODevice::ReadOnly)) { 
    qDebug() << "Cannot open file to fill avtomatTable"; 
} 

工作得很好

QFile file(":/_LOGFILE"); 
if (!file.open(/*QIODevice::Truncate | */QIODevice::WriteOnly)) { 
    qDebug() << "Cannot open LOGFILE"; 
} 

永遠不會奏效

我使用Kubuntu的。這兩個文件都位於該項目的dir/home/template/_projects/4_Disr中。 我誤解了正在發生的事情,並準備好相信克蘇魯。 有什麼建議嗎?

回答

7

所有封裝在資源中的數據都是隻讀的,據我所知... rcc將所有資源編譯爲二進制形式,通常會壓縮它們,因此無法在寫入模式下訪問它們。

這意味着文件在您的文件夾在編譯時被採取並添加到文件.rcc作爲您的資源的源文件。你的磁盤上的文件只是源自哪個資源文件被組裝,你的程序不會使用它們,只是rcc。

您應該創建日誌文件作爲獨立文件,並且都將正常工作。不要將其嵌入到資源系統中。

+0

Thanks dude!=)我創建它獨立,它的工作,但沒有資源時。你已經清理了正在發生的事情。再次感謝! – OneMoreVladimir 2011-05-25 13:50:42

+0

@OneMoreVladimir那麼爲什麼不接受他的答案? – 2011-05-25 14:23:00