我有一个使用Visual Studio C#编写的简单WinForms应用程序,其中包括SQLite数据库。 数据库的“构建操作”属性设置为“内容”,“复制到输出目录”设置为“如果更新则复制”。 该应用程序已准备好发布。我想安装一个。最好的方法是什么? 我预计会有一些问题。我应该在哪里保存数据库文件?如果将其保存到Program Files文件夹中,则数据库将变为只读。.我应该在哪里保存它,应该怎么做?
答案 0 :(得分:0)
我将您的问题视为:“在安装和使用应用程序期间在哪里存储可写文件?”
有2个特殊的地方:
ApplicationData 特殊文件夹。当前用户可以访问此文件夹,并且该文件夹实际上位于 C:\ Users \\ AppData \ Roaming (Win7)中。此路径存储在%APPDATA%
环境变量中,可以这样使用:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
您可以安全地将文件存储在以下文件夹结构中:%APPDATA%\YourCompanyName\YourAppName\
。
CommonApplicationData 特殊文件夹。几乎与上述相同,除了 all 用户可以访问并且它实际上位于__(Win7)中。此路径存储在%ALLUSERSPROFILE%
环境变量中,可以这样使用:
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData));
像以前一样,您可以安全地将文件存储在以下文件夹结构中:%ALLUSERSPROFILE%\YourCompanyName\YourAppName\
。
根据您的情况,在这里如何获取db文件路径:
var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
var dbPath = Path.Combine(appDataPath, "YourCompanyName\YourAppName", "your_db_name.sqlite3");
真正的区别是:此数据库是否对 all 个Windows用户通用,或者每个用户应具有自己的数据库。