2014-02-05 47 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所述。