我目前正在用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的某个地方,但是在哪里呢?而且,最重要的是,我如何通过编程来实现这一点?那么其他的OSes (尤其是Mac,因为大多数其他的UNIXes也可以使用"GNU/Linux“方法)呢?
我对所有的解决方案都持开放态度,无论它是否需要库。提前感谢您的帮助!
发布于 2011-06-16 02:26:37
Windows已被称为known folder IDs,以前(在Vista之前)称为special item IDs, or CSIDL。例如,在FOLDERID_LocalAppData引用的文件夹(即%USERPROFILE%\AppData\Local)中可能就是您要查找的内容。我不在Windows上,因此我不知道这些值提供了哪些C-API。但是,这些文件夹也可以作为环境变量(例如%LOCALAPPDATA%)使用。
https://stackoverflow.com/questions/6362146
复制相似问题