从QRessource加载的文件中提取绝对文件路径

时间:2014-02-05 15:49:33

标签: c++ qt qt4 absolute-path

我在/home/me/xmls/foo/bar.xml中有一个文件 和包含此路径的正确qrc文件

以下代码:

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

输出:

  

:/富/ bar.xml

当我期待的时候:

  

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

有没有办法恢复QRessource加载文件系统中的绝对路径?

2 个答案:

答案 0 :(得分:3)

QResource将其内容编码为一个文件,该文件被编译成最终的二进制文件。所以,不,我不希望在运行时获得原始路径是不可能的。正如Qt docs state: -

  

Qt资源系统是一种独立于平台的机制,用于在应用程序的可执行文件中存储二进制文件

此外,想要原始路径没有意义,因为其他用户不太可能在该位置拥有该文件。

答案 1 :(得分:1)

这:

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

表示您要从资源文件加载文件。基本上,这是一个库(静态或共享),它包含资源(图像,翻译等)。

这是访问资源中文件的标准语法,如in their documentation for the resources所述。