哪里存储windows程序数据文件?

Ahm*_*med 6 c#

我的程序包含一个sql lite db文件,我的程序在首次运行后创建,然后将数据存储在updon app用法中.数据库在一段时间内建立起来.db文件在程序的安装目录中创建

当有错误修复时,我必须定期更新应用程序,所以基本上我发布了一个新的msi安装程序,安装程序删除除db文件以外的旧安装文件并安装新的程序文件.

某些用户不会将其安装到默认位置,因此在所选位置中不存在db文件.

我想知道是否可以将数据文件存储到安装目录之外的某些程序数据文件夹中?以便我的程序的每个新更新都可以访问该程序数据文件夹中的数据..?

在windows xp,vista和7中是否有任何程序数据目录?以及如何在C#中访问它

谢谢,

Luk*_*ied 8

看看这里,以确定您的数据的正确位置.

我会投票给电子邮箱

  • ApplicationData(当前用户roming配置文件)
  • CommonApplicationData(本地计算机上的所有用户)
  • LocalApplicationData(本地计算机上的当前用户)

获取您选择的文件夹

Environment.GetFolderPath(Environment.SpecialFolder.xxx))
Run Code Online (Sandbox Code Playgroud)


Dou*_*rch 7

将用户数据存储在应用程序文件夹中非常危险.如果用户更新或卸载您的应用程序,不仅会破坏数据,而且标准用户甚至无法写入应用程序目录.

我通常在应用程序中包含一个种子数据库,并Environment.SpecialFolder.ApplicationData在应用程序启动时将其复制到该文件夹​​中的文件夹中 .所有用户数据都存储在副本中; 如果用户卸载应用程序,则会删除种子数据库,但仍保留用户数据.请参阅此SO 答案以获取示例.