【问题标题】:Cross-platform way of storing setting/cache存储设置/缓存的跨平台方式
【发布时间】:2011-06-15 18:01:38
【问题描述】:

我目前正在用 C 编写一个程序,它需要在磁盘上存储配置文件和各种缓存文件,以及一些永远不会更改的静态数据文件,并且可以安全地为所有用户共享。

我想将这些文件存储在操作系统的适当位置,如果可能的话,以可移植的方式......

例如,在 GNU/Linux 上:

$XDG_CONFIG_HOME/<program_rame>/ -- for configuration files
$XDG_CACHE_HOME/<program_name>/ -- for cache files
$XDG_DATA_DIRS/<program_name>/ -- for static files

而且,如果未设置这些,我可以使用推荐的默认值(“~/.config”、“~/.cache”和“/usr/share”)。 GNU/Linux 是最简单的。

但是,在 Windows 上,我不知道如何找到这些等价物。我认为它会在 AppData 中的某个地方,但是在哪里呢?而且,最重要的是,我如何以编程方式获得它?那么其他操作系统(尤其是 Mac OS,因为大多数其他 UNIX 也可以使用“GNU/Linux”方法)呢?

我对所有解决方案持开放态度,无论是否需要库。提前感谢您的帮助!

【问题讨论】:

    标签: c cross-platform configuration-files


    【解决方案1】:

    Windows 有所谓的known folder IDs,以前(在 Vista 之前)称为special item IDs, or CSIDL。例如,在FOLDERID_LocalAppData(即%USERPROFILE%\AppData\Local)引用的文件夹中可能就是您要查找的内容。我不在 Windows 上,因此我不知道这些值提供了哪些 C-API。但是,这些文件夹也有可能作为环境变量提供(例如%LOCALAPPDATA%)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多