使用应用程序存储本地数据库的最佳位置?

时间:2015-12-21 18:51:45

标签: wpf database sqlite inno-setup

我想知道本地存储数据库的最佳位置在哪里?我有一个从Appdata / Roaming读取数据库(SQLITE)的应用程序。但是,这在Windows 7上不起作用,但在Windows 8-10上运行正常。我相信它与权限有关,并且想要一些额外的知识。我正在使用inno创建一个设置,当我尝试在Windows 7上访问数据库时程序崩溃时遇到问题

2 个答案:

答案 0 :(得分:2)

用于存储用户的guideline(即,允许数据用户读取和写入)从Windows 7开始漫游(即用户远程登录时可用的数据)是C :\ Users \用户名\ AppData \漫游。该指南是在此目录中创建具有唯一名称(例如GUID)的文件夹,并将用户漫游数据存储在该文件夹中。您可以使用Path.Combine( Environment.GetFolder(Environment.SpecialFolder.ApplicationData), "a unique string")为.NET中的当前用户获取此目录的路径。

答案 1 :(得分:1)

所有用户都应该有权访问自己的用户目录。获取此信息应该来自相关的API和环境变量,例如here。 CSIDL_APPDATA应该在您编码的所有操作系统版本中有效。你的数据库可能不需要漫游,所以也许CSIDL_LOCAL_APPDATA是最好的选择,也是我会用的。