我目前正在用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”方法)?
我对所有解决方案持开放态度,无论是否需要图书馆。在此先感谢您的帮助!
答案 0 :(得分:1)
Windows之前称为known folder IDs,之前(在Vista之前)称为special item IDs, or CSIDL。例如,FOLDERID_LocalAppData
引用的文件夹(即%USERPROFILE%\AppData\Local
)可能就是您要查找的内容。我不在Windows上,因此我不知道这些值提供哪些C-API。但是,这些文件夹可能也可用作环境变量(例如%LOCALAPPDATA%
)。