2009-07-16 100 views
1

到目前爲止,我的應用程序已經將其數據庫存儲在應用程序的基本目錄中。當它被部署時,這將在程序文件,所以我不能讓他們在那裏!我應該在哪裏保存數據庫文件?

的obvoius地方是:

Environment.SpecialFolder.LocalApplicationData 
Environment.SpecialFolder.ApplicationData 

一個問題是,數據下載,可以從sceduled任務運行,所以我必須確保任務是相同的用戶權限下運行。

主要問題是,幾年後,這些數據庫文件可能總共爲5到10GB,所以我覺得應該在安裝後給用戶一個選項來選擇數據庫位置。我必須確保它是可寫的,而不是網絡位置。

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

回答

0

關於檢查對目錄的寫入訪問權限:到目前爲止,我沒有找到比在目錄中創建文件並立即刪除它更好的方法。如果您在這些步驟中遇到錯誤,則您的權限不足。 (請記住首先檢查驅動器上是否有足夠的可用空間)。

我曾經試圖通過訪問控制列表去編程解決這個問題,但後來我遇到了一個目錄,我不得不寫特權時,而不是列出的ACL權...

您可以檢查給定的驅動器是使用System.IO.DriveInfo對象的DriveType屬性的網絡共享。至於處理UNC路徑,我還沒有找到比(myPath.Substring(0,2) == @"\\")

更好的方法
相關問題