首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Windows 8 應用開發入門 (26):本地應用資料儲存完整指南

     編輯:關於.NET

應用資料容器架構

應用安裝時系統自動建立專屬資料存放區,開發者無需關心實體路徑,透過 Windows.Storage.ApplicationData.Current 存取三大容器:

  • LocalSettings / LocalFolder:本機持久化,無大小限制,適合大型資料集。
  • RoamingSettings / RoamingFolder:跨裝置漫遊 (有配額限制),適合使用者偏好設定。
  • TemporaryFolder:暫存資料,系統可隨時清理。

設定值操作

1. 簡單鍵值對

var localSettings = ApplicationData.Current.LocalSettings;
localSettings.Values["exampleSetting"] = "Hello Windows";

2. 複合值

var composite = new ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";
localSettings.Values["exampleCompositeSetting"] = composite;

3. 容器 (巢狀結構)

var container = localSettings.CreateContainer("exampleContainer", ApplicationDataCreateDisposition.Always);
if (localSettings.Containers.ContainsKey("exampleContainer"))
    localSettings.Containers["exampleContainer"].Values["exampleSetting"] = "Hello Windows";

讀取與刪除

// 讀取簡單值
object value = localSettings.Values["exampleSetting"];

// 讀取複合值
var composite = (ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];

// 讀取容器內值
bool hasContainer = localSettings.Containers.ContainsKey("exampleContainer");
bool hasSetting = hasContainer && localSettings.Containers["exampleContainer"].Values.ContainsKey("exampleSetting");

// 刪除
localSettings.Values.Remove("exampleSetting");
localSettings.Values.Remove("exampleCompositeSetting");
localSettings.DeleteContainer("exampleContainer");

檔案操作 (LocalFolder)

寫入文字檔

async void WriteTimestamp()
{
    var formatter = new DateTimeFormatter("longtime");
    var file = await localFolder.CreateFileAsync("dataFile.txt", CreationCollisionOption.ReplaceExisting);
    await FileIO.WriteTextAsync(file, formatter.Format(DateTime.Now));
}

讀取文字檔

async void ReadTimestamp()
{
    try
    {
        var file = await localFolder.GetFileAsync("dataFile.txt");
        string timestamp = await FileIO.ReadTextAsync(file);
    }
    catch { /* 檔案不存在 */ }
}

關鍵列舉

  • CreationCollisionOption:ReplaceExisting、FailIfExists、GenerateUniqueName、OpenIfExists。
  • ApplicationDataCreateDisposition:Always (不存在則建立)、Existing (必須存在)。

官方範例

MSDN 提供 Application data sample 完整專案下載。

總結

掌握 ApplicationData 三大容器與 FileIO 非同步 API,即可實作離線快取、使用者偏好同步、暫存清理等核心資料持久化需求。注意漫遊資料配額限制 (預設 100KB),大型資料請使用 LocalFolder。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved