到目前为止,我的应用程序一直在将其数据库存储在app基本目录中。部署时,这将在程序文件中,所以我不能将它们保留在那里!
obvoius地方是:
Environment.SpecialFolder.LocalApplicationData
Environment.SpecialFolder.ApplicationData
一个问题是数据下载可以从已调度的任务中运行,因此我必须确保任务在同一用户下运行。
主要问题是,几年后,这些数据库文件总共可以达到5到10GB,所以我觉得我应该在安装后给用户一个选项以选择数据库位置。我必须确保它是可写的而不是网络位置。
其他人提出了哪些解决方案?
答案 0 :(得分:0)
关于检查对目录的写访问权限:到目前为止,我发现没有比在目录中创建文件更好的方法并立即删除它。如果在这些步骤中遇到错误,则您的权限不足。 (请记住首先检查驱动器上是否有足够的可用空间。)
我曾尝试通过访问控制列表以编程方式解决此问题,但后来我遇到了一个我写了特权的目录,但没有列出ACL的权利......
您可以使用System.IO.DriveInfo
对象的DriveType
属性检查给定的驱动器是否为网络共享。至于处理UNC路径,我还没有找到比(myPath.Substring(0,2) == @"\\")