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

时间:2009-07-16 09:15:13

标签: c# database filesystems

到目前为止,我的应用程序一直在将其数据库存储在app基本目录中。部署时,这将在程序文件中,所以我不能将它们保留在那里!

obvoius地方是:

Environment.SpecialFolder.LocalApplicationData
Environment.SpecialFolder.ApplicationData

一个问题是数据下载可以从已调度的任务中运行,因此我必须确保任务在同一用户下运行。

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

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

1 个答案:

答案 0 :(得分:0)

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

我曾尝试通过访问控制列表以编程方式解决此问题,但后来我遇到了一个我写了特权的目录,但没有列出ACL的权利......

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

更好的方法