我的应用程序/服务应该在哪里将其配置文件存储在Windows中?

时间:2012-07-24 12:05:00

标签: java windows configuration-files

在Linux中,我通常会将用户配置文件放在$ HOME / .myapp中,而在Windows中我会使用APPDATA。到目前为止一切都很好。

非用户特定配置怎么样?在linux中,我将它放入/etc。在Windows中是否有相同的功能?请注意我希望在任何用户登录之前让服务运行。另外,如果它扮演一个角色,我正在用Java开发。

或者:我接近这个错误的方式?

3 个答案:

答案 0 :(得分:2)

您可以使用ALLUSERPROFILES作为基本目录。此环境变量解析为Windows7中的C:\ PROGRAMDATA文件夹。当然,您需要为应用程序添加特定文件夹

答案 1 :(得分:2)

总之,您应该使用已知的文件夹:ProgramData

为了避免路径的硬编码(以及为什么我不在这里提供它们),您应该始终通过以下方法之一检索值:

非管理员无法写入此文件夹,因此根据您的要求,您需要为程序创建目录并在安装时设置所需的ACL。

博客文章中提供了有关此主题的一些有用信息:" Where Should I Write Program Data Instead of Program Files"。

对于有兴趣使用其他已知文件夹的用户,MSDN提供extensive documentation

答案 2 :(得分:1)

在Windows中,应用程序的大多数“程序文件”都在C:\ Program Files \ MyApp中。环境变量为%ProgramFiles%\ MyApp。