2014-02-05 104 views
1

我在/home/me/xmls/foo/bar.xml 一個文件,包含此路徑提取絕對文件路徑加載文件

如下因素代碼正確的QRC文件:

QFileInfo f (":/foo/bar.xml"); 
cout<<f.absoluteFilePath().toAscii().data()<<endl; 

輸出:

:/foo/bar.xml

時我期待:

/home/me/xmls/foo/bar.xml

有沒有辦法恢復的QRessource加載文件系統的絕對路徑?

回答

2

QResource將其內容編碼到一個文件中,該文件被編譯到最終的二進制文件中。所以,我不希望在運行時無法獲得原始路徑。由於Qt docs state: -

Qt的資源系統是在應用程序的可執行文件

此外,它沒有任何意義存儲二進制文件想原來的路徑與平臺無關的機制,因爲其他用戶不太可能在該位置擁有該文件。

+0

你是對的。我誤解了QResource及其用法。 –

1

此:

QFileInfo f (":/foo/bar.xml"); 

意味着你會從資源文件加載一個文件。基本上,這是一個庫(靜態或共享),其中包含資源(圖像,翻譯等)。

這是訪問資源中文件的標準語法,如解釋in their documentation for the resources所述。