
Where should cross-platform apps keep their data?我正在构建一个针对Windows,Mac和Linux的应用程序。 我想知道应该将应用程序数据(例如设置等)保存在哪里。 应用程序的安装文件夹是最简单的选择,但是我认为新的Vista安全模型可能会出现问题。 此外,用户可能需要不同的设置。
C:\ Documents and Settings \ username \ MyApp是否对Vista和XP都有用? 非常感谢任何想法和/或最佳实践的链接。 谢谢! 胡安 每个平台都有其自己的API,用于查找用户的主文件夹,文档文件夹或首选项文件夹。
请勿硬编码特定路径,或仅在用户名上添加前缀和后缀。另外,请尝试遵循平台命名文件的所有约定。 关于最佳实践,Jeff发表了一篇关于污染用户空间的文章,您可能会发现它有用:不要污染用户空间 通常,我建议将设置的实现抽象为"设置提供程序",并为每个平台提供不同的提供程序。这样,您可以以最适合目标平台的方式来实现设置的存储(例如,Linux或Windows注册表上的文件)。 不要简单地采用"最低公分母"。如果您的内容必须明确存储在文件中,请让设置提供程序公开这些文件的特定于平台的位置。
对于Linux / BSD / Solaris: 在Windows上,我使用APPDATA,在Linux上,我使用HOME。 在Windows中,您不仅需要进入用户配置文件,还需要进入另一个层次。使用应用程序数据文件夹。 我不是 :) 我在Windows中使用USERPROFILE,在Mac / Linux中使用HOME。但是即使如此,我仍然需要知道那些地方是正确的。 谢谢! 您打算使用哪种语言?例如,Java具有专用的首选项API。 永远不要将用户数据存储在应用程序文件夹中。这是一个坏主意。 大多数操作系统都有$ HOME(或%HOME%)环境变量。那将是第一个看到的地方。 但是,如果您要完全支持多个操作系统,则必须为每个操作系统提供一些特定于操作系统的代码,以准确地确定需要处理的事情。 (对于Mac OS是?/ Library,对于基于GNOME的系统是?/ .config,对于Windows是%HOME%/ Application Data,等等)。 |