在哪里存储桌面应用程序的用户数据?

Where to store user data for a desktop application?

我正在开发 C#.NET 桌面应用程序,我希望用户能够创建新的数据库文件。我是桌面应用程序的新手,我真的不知道存储这些文件的最佳位置在哪里。我想将它们存储在我的应用程序文件夹中,但我了解到这不是最佳解决方案。我应该将它们存储在 C:// 中还是有其他一些最佳实践?

您可以使用AppData\Local。这是存储应用程序数据的常用位置。

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

这不能轻易回答。

  • 数据库很大吗?

ProgramData 中可以隐藏一个小数据库。这几乎不适合 TB 大小的存储库。

  • 用户是否知道有数据库文件?

还是"hidden feature"他从来没见过?

  • 数据库文件是否特定于应用程序?

双击时会发生什么?

Should I store them inside C:// or is there some other best practice?

有最佳实践。 C 从来都不是最佳实践,所以它不是 "some other"。唯一对 windows 的现实更加无知的是将其存储在应用程序文件夹中 - 按照标​​准,该文件夹对用户来说是只读的。

有一个已知的文件夹集合和一些系统调用来为它们找到 "true" 位置。

Environment.SpecialFolders 枚举有位置 - 我相信您可以浏览足够多的文档以找到其余位置。

ApplicationData 或 CommonDocument 或类似的东西可能适用,但从用户的角度来看,它实际上取决于它的 "nature"。