匯出 (0) 列印
全部展開
資訊
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

快速入門:本機應用程式資料 (XAML)

Applies to Windows and Windows Phone

了解如何從本機應用程式資料存放區儲存與抓取設定和檔案。

藍圖: 這個主題與其他主題的相關性?請參閱:

取得應用程式各項設定和檔案的容器

使用 ApplicationData.LocalSettings 屬性來取得 ApplicationDataContainer 物件中的設定。使用 ApplicationData.LocalFolder 屬性來取得 StorageFolder 物件中的檔案。


Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

下一節會使用本節的 localSettingslocalFolder 變數。

將資料寫入設定

使用 ApplicationDataContainer.Values 屬性來存取上一個步驟中取得之 localSettings 容器的設定。這個範例會建立名為 exampleSetting 的設定。


// Simple setting

localSettings.Values["exampleSetting"] = "Hello Windows";

ApplicationDataCompositeValue 物件包含的設定,在存取時不可分開進行。這個範例會建立名為 exampleCompositeSetting 的複合設定,然後將它新增到 localSettings 容器。


// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";

localSettings.Values["exampleCompositeSetting"] = composite;

呼叫 ApplicationDataContainer.CreateContainer 方法來建立設定容器。這個範例會建立名為 exampleContainer 的設定容器,然後新增名為 exampleSetting 的設定。來自 ApplicationDataCreateDisposition 列舉的 Always 值,指出如果還沒有容器,就會建立一個容器。


// Setting in a container

Windows.Storage.ApplicationDataContainer container = 
   localSettings.CreateContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.Always);

if (localSettings.Containers.ContainsKey("exampleContainer"))
{
   localSettings.Containers["exampleContainer"].Values["exampleSetting"] = "Hello Windows";
}

從設定讀取資料

使用 ApplicationDataContainer.Values 屬性來取得 localSettings 容器中的 exampleSetting 設定。


// Simple setting

Object value = localSettings.Values["exampleSetting"];

使用 ApplicationDataContainer.Values 屬性來取得 localSettings 容器中的 exampleCompositeSetting 設定。


// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
   (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];

if (composite == null)
{
   // No data
}
else
{
   // Access data in composite["intVal"] and composite["strVal"]
}

使用 ApplicationDataContainer.Values 屬性來取得 exampleContainer 容器中的 exampleSetting 設定。


// Setting in a container

bool hasContainer = localSettings.Containers.ContainsKey("exampleContainer");
bool hasSetting = false;

if (hasContainer)
{
   hasSetting = localSettings.Containers["exampleContainer"].Values.ContainsKey("exampleSetting");
}

將資料寫入檔案

使用檔案 API,例如 Windows.Storage.StorageFolder.CreateFileAsyncWindows.Storage.FileIO.WriteTextAsync,在本機應用程式資料存放區中建立和更新檔案。這個範例會在 localFolder 容器中建立名為 dataFile.txt 的檔案,然後在這個檔案中寫入目前的日期與時間。來自 CreationCollisionOption 列舉的 ReplaceExisting 值,指出檔案如果已經存在,就會取代它。

  • Applies to Windows Phone

在 Windows Phone 裝置上,預設會備份應用程式資料。如果您不想備份檔案,可以將它儲存於應用程式本機存放區的 LocalCache 子資料夾中。


async void WriteTimestamp()
{
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
       new Windows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime");

   StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt", 
       CreateCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now));
}

從檔案讀取資料

使用檔案 API,例如 Windows.Storage.StorageFolder.GetFileAsyncWindows.Storage.StorageFile.GetFileFromApplicationUriAsyncWindows.Storage.FileIO.ReadTextAsync,在本機應用程式資料存放區中開啟和讀取檔案。這個範例會開啟上一個步驟中建立的 dataFile.txt 檔案,然後讀取該檔案的日期。如需從各種位置載入檔案資源的詳細資料,請參閱如何載入檔案資源


async void ReadTimestamp()
{
   try
   {
      StorageFile sampleFile = await localFolder.GetFileAsync("dataFile.txt");
      String timestamp = await FileIO.ReadTextAsync(sampleFile);
      // Data is contained in timestamp
   }
   catch (Exception)
   {
      // Timestamp not found
   }
}

當設定不再需要時將其刪除

當您不再需要 exampleSetting 設定時,呼叫 ApplicationDataContainerSettings.Remove 方法將其刪除。


// Delete simple setting

localSettings.Values.Remove("exampleSetting");

當您不再需要 exampleCompositeSetting 複合設定時,呼叫 ApplicationDataCompositeValue.Remove 方法將其刪除。


// Delete composite setting

localSettings.Values.Remove("exampleCompositeSetting");

當您不再需要 exampleContainer 設定容器時,呼叫 ApplicationDataContainer.DeleteContainer 方法將其刪除。


// Delete container

localSettings.DeleteContainer("exampleContainer");

相關主題

工作
如何載入檔案資源
快速入門:應用程式資料漫遊
快速入門:暫時的應用程式資料
概念
使用 Windows 執行階段存取應用程式資料
參考
Windows.Storage.ApplicationData
Windows.Storage.ApplicationDataCompositeValue
Windows.Storage.ApplicationDataContainer
Windows.Storage.ApplicationDataContainerSettings
範例
應用程式資料範例

 

 

顯示:
© 2014 Microsoft