我正在构建一个即将面向Windows,Mac和Linux的应用程序。我想知道应该在哪里保存应用程序数据,例如设置等。
应用程序的安装文件夹是最简单的选择,但我认为这可能是新的Vista安全模型的问题。此外,用户可能需要不同的设置。
C:\ Documents and Settings \ username \ MyApp对Vista和XP都有好处吗? 是/home/username/.MyApp适合Linux和Mac吗?
非常感谢任何有关最佳做法的想法和/或链接。
谢谢!
涓
答案 0 :(得分:12)
每个平台都有自己的API,用于查找用户的主文件夹或文档文件夹或首选项文件夹。
不要对特定路径进行硬编码,也不要在用户名上添加前缀和后缀。此外,尝试遵循平台命名文件的任何约定。
答案 1 :(得分:5)
关于最佳做法,Jeff发布了一篇关于污染用户空间的文章,您可能会发现它很有用:Don't Pollute User Space
答案 2 :(得分:4)
总的来说,我建议将设置的实现抽象为“设置提供商”,并为每个平台提供不同的提供商。这样,您可以以最适合目标平台的方式实现设置的存储(例如,Linux或Windows注册表上的文件)。
不要简单地采用“最低公分母”。如果您的内容必须明确存储在文件中,请让您的设置提供者公开这些文件的平台特定位置。
答案 3 :(得分:2)
我不是:)
我在Windows中使用USERPROFILE,在Mac / Linux中使用HOME。但即使这样,我也需要知道那些是正确的地方。
谢谢!
答案 4 :(得分:2)
在Windows中,您需要更深层次而不仅仅是用户个人资料。使用Application Data文件夹。
答案 5 :(得分:2)
在Windows上我使用APPDATA,在Linux上我使用HOME。
答案 6 :(得分:2)
对于Linux / BSD / Solaris: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
答案 7 :(得分:1)
永远不要将用户数据存储在应用程序文件夹中。这只是个坏主意。
大多数操作系统都有$ HOME(或%HOME%)环境变量。这将是第一个看的地方。
但是,如果您想要干净地支持多个操作系统,那么您将需要为每个操作系统提供一些特定于操作系统的代码,以确切了解需要采取的措施。 (〜/ Mac OS库,基于GNOME的系统的〜/ .config,%HOME%/ Windows的应用程序数据等)。
答案 8 :(得分:1)
您打算使用哪种语言?例如,Java有一个专用的Preference API。