我应该在哪里保存数据库文件?

问题描述:

到目前为止,我的应用程序已经将其数据库存储在应用程序的基本目录中。当它被部署时,这将在程序文件,所以我不能让他们在那里!我应该在哪里保存数据库文件?

的obvoius地方是:

Environment.SpecialFolder.LocalApplicationData 
Environment.SpecialFolder.ApplicationData 

一个问题是,数据下载,可以从sceduled任务运行,所以我必须确保任务是相同的用户权限下运行。

主要问题是,几年后,这些数据库文件可能总共为5到10GB,所以我觉得应该在安装后给用户一个选项来选择数据库位置。我必须确保它是可写的,而不是网络位置。

他人提出了哪些解决方案?

关于检查对目录的写入访问权限:到目前为止,我没有找到比在目录中创建文件并立即删除它更好的方法。如果您在这些步骤中遇到错误,则您的权限不足。 (请记住首先检查驱动器上是否有足够的可用空间)。

我曾经试图通过访问控制列表去编程解决这个问题,但后来我遇到了一个目录,我不得不写特权时,而不是列出的ACL权...

您可以检查给定的驱动器是使用System.IO.DriveInfo对象的DriveType属性的网络共享。至于处理UNC路径,我还没有找到比(myPath.Substring(0,2) == @"\\")

更好的方法