我有與預先填充了一些數據的SQlite數據庫的Metro應用程序。 允許用戶更改和添加更多數據。Windows應用商店應用和SQLite用戶數據
問題是:如何在應用更新之間保存用戶數據? 我應該選擇哪個文件夾:
Windows.ApplicationModel.Package.Current.installedLocation
或 Windows.Storage.ApplicationData.Current.LocalFolder
?
我有與預先填充了一些數據的SQlite數據庫的Metro應用程序。 允許用戶更改和添加更多數據。Windows應用商店應用和SQLite用戶數據
問題是:如何在應用更新之間保存用戶數據? 我應該選擇哪個文件夾:
Windows.ApplicationModel.Package.Current.installedLocation
或 Windows.Storage.ApplicationData.Current.LocalFolder
?
您可能想使用這兩個位置。
InstalledLocation包含應用程序附帶的任何數據。它是隻讀的,因此用戶不能在該位置更改或添加數據。
ApplicationData文件夾是每個用戶都可寫的。他們會堅持更新。
典型模式是將預填充的數據庫發送到您的應用程序包中,以便將其安裝在installedLocation文件夾中。當應用程序首次運行時,它可以將數據庫從installedLocation複製到ApplicationData文件夾,然後應用程序可以使用該數據。
只要應用程序不復制ApplicationData文件夾中已有的任何數據,那麼用戶的數據將在更新之間保持不變。如果用戶只是添加數據並且不更改預填充數據,或者預填充的數據不隨更新而更改,那麼這很容易。您可以複製任何新數據,但不能覆蓋現有數據。
如果用戶可以更改預先填充的數據,並且更新可以更改預先填充的數據,那麼這會有點棘手:您需要一個系統來知道當前數據是否來自用戶,然後只有當它不是來自用戶時才更新它。如何做到這一點取決於數據庫和數據。兩種可能性是修改後的列或時間戳。