出于安全原因,这些文件夹C:\PROGRAM FILES
或C:\PROGRAM FILES (x86)
由操作系统(Vista 及更高版本)配置以阻止写入操作。
可以使用Environment.SpecialFolder枚举 的Environment.GetSpecialFolder
参数调用用于写入应用程序范围数据(设置或数据库数据文件)的推荐文件夹。CommonApplicationData
Visual Studio 2010 中使用的标准设置工具没有直接指向此的预定义文件夹CommonApplicationData
,但是您可以使用一种解决方法:
- 右键单击文件系统,选择
Add a Special Folder
然后Custom folder
- 为文件系统树中的新文件夹命名
- 将属性设置
DefaultLocation
为[CommonAppDataFolder]
- 右键单击新添加的文件夹自定义文件夹,为您的应用程序创建一个子文件夹
- 使用此文件夹添加您的数据库文件。
在此之后,不要忘记更改您的应用程序 ConnectionString 并将其指向文件的新位置。在 C# 中你写这样的东西
string commonData = ENvironment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
string pathToDBFile = Path.Combine(commonData, "MyAppDir", "MyDB.sqlite");