【发布时间】:2012-09-18 17:15:10
【问题描述】:
在我的 GNU/Linux 环境中,我的软件的所有图形资源都安装在 /usr/share/pixmaps 下。在 Wintendo 中,一切都会进入C:\Program files\myappname。在不同的操作系统中,在其他地方。
什么是最常见的方式、约定和良好实践,以便我可以抽象出我的方式来引用我在代码中以独立于路径/安装/构建的方式打开的文件?基本上是一种引用资源路径的可移植方式。
【问题讨论】:
-
最简单的方法可能是有一个配置文件,每个操作系统约定一个,它将描述安装文件的路径。
-
OT:在 Windows 上,根据数据的上下文(全局配置、每用户配置、每用户数据文件、公共数据文件、等等。)。它是正确的,但它也是应遵守的 UAC 问题,否则您可能会在未来遇到问题。查看 SHGetKnownFolderPath 上的 API 文档以获取更多信息。我之所以提出它只是因为您提到您希望在 Windows 中以受支持的方式执行此操作,而 C:\Program Files 在大多数情况下不是一个好的选择,甚至不是一个有效的选择。
-
@WhozCraig 我说的是程序本身的数据文件,完全是静态数据。我会看看 SHGetKnownFolderPath,谢谢你的建议。
标签: c++ c path convention