言語: HTML | XAML

クイック スタート: ローカル アプリ データ (XAML)

ローカル アプリ データ ストアからのファイルと設定の保存方法と取得方法について説明します。

ロードマップ: このトピックと他のトピックとの関連については、以下をご覧ください。

アプリの設定とファイルのコンテナーを取得する

ApplicationDataContainer オブジェクト内の設定を取得するには、ApplicationData.LocalSettings プロパティを使います。StorageFolder オブジェクト内のファイルを取得するには、ApplicationData.LocalFolder プロパティを使います。


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

以降のセクションでは、このセクションの localSettings 変数と localFolder 変数を使います。

データを設定に書き込む

前の手順で取得した localSettings コンテナー内の設定にアクセスするには、ApplicationDataContainer.Values プロパティを使います。次の例では、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";
}

データを設定から読み取る

localSettings コンテナー内の exampleSetting 設定にアクセスするには、ApplicationDataContainer.Values プロパティを使います。


// Simple setting

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

localSettings コンテナー内の exampleCompositeSetting 設定にアクセスするには、ApplicationDataContainer.Values プロパティを使います。


// 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"]
}

exampleContainer コンテナー内の exampleSetting 設定にアクセスするには、ApplicationDataContainer.Values プロパティを使います。


// Setting in a container

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

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

データをファイルに書き込む

ローカル アプリ データ ストアにファイルを作って更新するには、Windows.Storage.StorageFolder.CreateFileAsyncWindows.Storage.FileIO.WriteTextAsync などのファイル API を使います。次の例では、localFolder コンテナーに dataFile.txt という名前のファイルを作り、現在の日付と時刻をファイルに書き込みます。CreationCollisionOption 列挙体の ReplaceExisting 値は、ファイルが既にある場合にファイルを置き換えることを示します。

  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));
}

データをファイルから読み取る

ローカル アプリ データ ストアのファイルを開いて読み取るには、Windows.Storage.StorageFolder.GetFileAsyncWindows.Storage.StorageFile.GetFileFromApplicationUriAsyncWindows.Storage.FileIO.ReadTextAsync などのファイル API を使います。この例では、前の手順で作成した 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
サンプル
アプリケーション データ サンプルに関するページ

 

 

表示:
© 2015 Microsoft