2015-12-21 70 views
0

我想知道本地存儲數據庫的最佳位置是哪裏?我有一個應用程序從Appdata/Roaming中讀取數據庫(SQLITE)。但是,這不適用於Windows 7,但在Windows 8-10上運行良好。我相信這是與權限有關的,並希望獲得一些額外的知識。我使用inno創建了一個安裝程序,只是遇到問題,因爲當我嘗試訪問Windows 7上的數據庫時程序崩潰了。用應用程序存儲本地數據庫的最佳地點?

回答

1

所有用戶都應該有權訪問他們自己的用戶目錄。獲取此應該來自相關的API和環境變量,如here。 CSIDL_APPDATA應該在您編碼的所有操作系統版本中都有效。你的數據庫可能不需要漫遊,所以也許CSIDL_LOCAL_APPDATA是最好的選擇,我可以使用。

2

guideline用於在Windows 7上存儲用戶(即允許數據用戶讀寫的用戶)漫遊(即遠程登錄時可用於用戶的數據)爲C:\ Users \用戶名\ AppData的\漫遊。準則是在此目錄中創建一個具有唯一名稱的文件夾(如GUID),並將用戶漫遊數據存儲在該文件夾中。您可以使用Path.Combine(Environment.GetFolder(Environment.SpecialFolder.ApplicationData), "a unique string")獲得.NET中當前用戶的此目錄的路徑。

+0

嗨,感謝您的回覆。我在inno中創建了這個在C#中安裝程序轉到'DefaultDirName = {localappdata}',並且在C#代碼中我有'Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)'唯一的問題是它不會從數據庫讀取100%的時間,因爲我發現它不會在Windows 10設備上運行,但罰款兩個我測試。 – Bish25

+0

我無法測試您的應用程序。您必須發佈證明問題的代碼。 –

相關問題