我的程序包含一个sql lite db文件,我的程序在首次运行后创建,然后将数据存储在updon app用法中。数据库在一段时间内建立起来。 db文件在程序的安装目录中创建
我必须在修复错误时定期更新应用程序,所以基本上我发布了一个新的msi安装程序,安装程序会删除除db文件以外的旧安装文件并安装新的程序文件。
某些用户不会将其安装到默认位置,因此在所选位置不存在db文件。
我想知道将数据文件存储到install dir之外的某个程序数据文件夹是否可以?以便我的程序的每个新更新都可以访问该程序数据文件夹中的数据..?
windows xp,vista和7中是否有任何程序数据目录?以及如何在C#
中访问它谢谢,
答案 0 :(得分:8)
查看here以确定数据的正确位置。
我会投票给电子邮件
使用
获取您选择的文件夹Environment.GetFolderPath(Environment.SpecialFolder.xxx))
答案 1 :(得分:7)
将用户数据存储在应用程序文件夹中非常危险。如果用户更新或卸载您的应用程序,不仅会破坏数据,而且标准用户甚至无法写入应用程序目录。
我通常在应用程序中包含一个种子数据库,并在应用程序启动时将其复制到Environment.SpecialFolder.ApplicationData
文件夹中的文件夹。所有用户数据都存储在副本中;如果用户卸载应用程序,则会删除种子数据库,但仍保留用户数据。请参阅此SO answer以获取示例。
答案 2 :(得分:1)
您不应将数据存储在安装文件夹中。 Try this。特殊文件夹旨在让您能够存储此类数据。还有应用程序设置,它们可以访问并提供存储用户密钥值对Information的简便方法。