設定と他のアプリ データを保存して取得する

アプリ データは、特定のアプリによって作成および管理される変更可能なデータです。 アプリ データには、ランタイム状態、アプリ設定、ユーザー設定、参照コンテンツ (たとえば、辞書アプリの辞書定義)、その他の設定が含まれます。 アプリ データは、ユーザー データ、ユーザーがアプリを使用するときに作成および管理するデータとは異なります。 ユーザー データには、ドキュメントまたはメディア ファイル、電子メールまたは通信トランスクリプト、またはユーザーが作成したコンテンツを保持するデータベース レコードが含まれます。 ユーザー データは、複数のアプリにとって有用または意味のある場合があります。 多くの場合、これは、ドキュメントなどのアプリ自体に依存しないエンティティとしてユーザーが操作または送信するデータです。

アプリ データに関する重要な注意事項: アプリ データの有効期間は、アプリの有効期間に関連付けられています。 アプリが削除されると、結果としてすべてのアプリ データが失われます。 アプリ データを使用して、ユーザー データや、ユーザーが貴重でかけがえのないものとして認識する可能性のあるものを格納しないでください。 この種の情報を格納するには、ユーザーのライブラリと Microsoft OneDrive を使用することをお勧めします。 アプリ データは、アプリ固有のユーザー設定、設定、お気に入りを格納するのに最適です。

アプリ データの種類

アプリ データには、設定とファイルの 2 種類があります。

設定

設定を使用して、ユーザー設定とアプリケーションの状態情報を格納します。 アプリ データ API を使用すると、設定を簡単に作成および取得できます (この記事の後半で例をいくつか紹介します)。

アプリ設定に使用できるデータ型を次に示します。

  • UInt8Int16UInt16Int32UInt32Int64UInt64SingleDouble
  • Boolean
  • Char16文字列
  • DateTimeTimeSpan
  • GUIDポイントサイズRect
  • ApplicationDataCompositeValue: アトミックにシリアル化および逆シリアル化する必要がある、一連の関連したアプリの設定。 複合設定を使用すると、相互依存設定のアトミック更新を簡単に処理できます。 システムは、コンカレント アクセスとローミング中に複合設定の整合性を確保します。 複合設定は少量のデータ用に最適化されており、大規模なデータ セットに使用するとパフォーマンスが低下する可能性があります。

ファイル

ファイルを使用してバイナリ データを格納するか、独自のカスタマイズされたシリアル化された型を有効にします。

アプリ データ ストアにアプリ データを格納する

アプリがインストールされると、システムは設定とファイル用のユーザーごとの独自のデータ ストアを提供します。 システムが物理ストレージを管理し、データが他のアプリや他のユーザーから確実に分離されるようにするため、このデータが存在する場所や方法を知る必要はありません。 システムは、ユーザーがアプリに更新プログラムをインストールするときに、これらのデータ ストアの内容を保持し、アプリがアンインストールされたときにこれらのデータ ストアの内容を完全かつクリーンに削除します。

アプリ データ ストア内には、各アプリにシステム定義のルート ディレクトリがあり、1 つはローカル ファイル用、1 つはローミング ファイル用、1 つは一時ファイル用です。 アプリは、これらの各ルート ディレクトリに新しいファイルと新しいコンテナーを追加できます。

ローカル アプリ データ

ローカル アプリ データは、アプリ セッション間で保持する必要があり、アプリ データのローミングには適していない情報に使用する必要があります。 他のデバイスには適用できないデータもここに保存する必要があります。 保存されるローカル データには一般的なサイズ制限はありません。 ローカル アプリ データ ストアは、ローミングしても意味のないデータや、大規模なデータ セットに使用します。

ローカル アプリ データ ストアを取得する

ローカル アプリ データの読み取りまたは書き込みを行う前に、ローカル アプリ データ ストアを取得する必要があります。 ローカル アプリ データ ストアを取得するには、ApplicationData.Local 設定プロパティを使用して、アプリケーションのローカル設定を ApplicationDataContainer オブジェクトとして取得します。 ApplicationData.LocalFolder プロパティを使用して、StorageFolder オブジェクト内のファイルを取得します。 ApplicationData.LocalCacheFolder プロパティを使用して、バックアップと復元に含まれていないファイルを保存できるローカル アプリ データ ストア内のフォルダーを取得します。

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

簡単なローカル設定を作成して取得する

設定を作成または書き込むには、ApplicationDataContainer.Values プロパティを使用して、前の手順で取得した localSettings コンテナーの設定にアクセスします。 exampleSetting という名前の設定を作成する例を次に示します。

// Simple setting

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

設定を取得するには、設定の作成に使用したのと同じ ApplicationDataContainer.Values プロパティを使用します。 この例では、先ほど作成した設定を取得する方法を示します。

// Simple setting
Object value = localSettings.Values["exampleSetting"];

ローカル複合値を作成して取得する

複合値を作成または書き込むには、ApplicationDataCompositeValue オブジェクトを作成します。 この例では、exampleCompositeSetting という名前の複合設定を作成し、localSettings コンテナーに追加します。

// Composite setting

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

localSettings.Values["exampleCompositeSetting"] = composite;

この例では、先ほど作成した複合値を取得する方法を示します。

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

ローカル ファイルの作成および読み取り

ローカル アプリ データ ストアでファイルを作成および更新するには、Windows.Storage.StorageFolder.CreateFileAsyncWindows.Storage.FileIO.WriteTextAsync などのファイル API を使用します。 この例では、localFolder コンテナーの dataFile.txt と名付けられたファイルを作成し、現在の日付と時刻をファイルに書き込みます。 CreationCollisionOption 列挙の ReplaceExisting 値は、ファイルが既に存在する場合は置き換えることを示します。

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

   StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt", 
       CreationCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTimeOffset.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
   }
}

データをローミング

警告

ローミング データと設定は、Windows 11 ではサポートされなくなりました。 代替として推奨されるのは、Azure App Service です。 Azure App Service は、広くサポートされており、ドキュメントが豊富で、信頼性が高く、iOS、Android、Web などのクロスプラットフォームやクロスエコシステムのシナリオに対応しています。

次のドキュメントは、Windows 10 バージョン 1909 以前に適用されます。

アプリでローミング データを使用する場合、ユーザーはアプリのアプリ データを複数のデバイス間で簡単に同期させることができます。 ユーザーが複数のデバイスにアプリをインストールした場合、OS はアプリ データを同期し続け、ユーザーが 2 台目のデバイスでアプリに対して行う必要があるセットアップ作業の量を減らします。 ローミングを使用すると、ユーザーは、別のデバイスでも中断した場所で、リストの作成などのタスクを続行することもできます。 OS では、ローミング データが更新されるとクラウドにレプリケートされ、アプリがインストールされている他のデバイスにデータが同期されます。

OS では、各アプリがローミングできるアプリ データのサイズが制限されます。 「ApplicationData.RoamingStorageQuota」を参照してください。 アプリがこの制限に達した場合、アプリの合計ローミング アプリ データが再び制限を下回るまで、アプリのアプリ データはクラウドにレプリケートされません。 このため、ローミング データは、ユーザー設定、リンク、および小さなデータ ファイルにのみ使用することをお勧めします。

アプリのローミング データは、必要な時間間隔内に何らかのデバイスからユーザーがアクセスする限り、クラウドで利用できます。 ユーザーがこの時間間隔より長くアプリを実行しない場合、そのローミング データはクラウドから削除されます。 ユーザーがアプリをアンインストールした場合、ローミング データはクラウドから自動的に削除されず、保持されます。 ユーザーが時間間隔内にアプリを再インストールすると、ローミング データはクラウドから同期されます。

ローミング データですべきこととしてはいけないこと

データのローミングに関する重要な注意事項を参照してください。

  • ローミングは、ユーザー設定とカスタマイズ、リンク、および小さなデータ ファイルに使用します。 たとえば、ローミングを使用して、すべてのデバイスでユーザーの背景色の設定を保持します。
  • ローミングを使用して、ユーザーがデバイス間でタスクを続行できるようにします。 たとえば、下書きメールの内容やリーダー アプリで最近表示されたページなどのアプリ データをローミングします。
  • アプリ データを更新して、DataChanged イベントを処理します。 このイベントは、クラウドからのアプリ データの同期が完了したばかりの場合に発生します。
  • 生データではなくコンテンツへの参照をローミングします。 たとえば、オンライン記事のコンテンツではなく URL をローミングします。
  • 時間が重要な重要な設定には、RoamingSettings に関連付けられた HighPriority 設定を使用します。
  • デバイスに固有のアプリ データをローミングしないでください。 ローカル ファイル リソースへのパス名など、一部の情報はローカルでのみ関連します。 ローカル情報をローミングする場合は、セカンダリ デバイスで情報が有効でない場合にアプリが回復できることを確認します。
  • 大量のアプリ データのセットをローミングしないでください。 アプリがローミングできるアプリ データの量には制限があります。この最大値を取得するには、RoamingStorageQuota プロパティを使用します。 アプリがこの制限に達した場合、アプリ データ ストアのサイズが制限を超えなくなるまで、データはローミングできません。 アプリを設計するときは、制限を超えないように、より大きなデータにバインドする方法を検討してください。 たとえば、ゲームの状態を保存するためにそれぞれ 10 KB (キロバイト)が必要な場合、アプリではユーザーが最大 10 個のゲームを格納できる場合があります。
  • インスタント同期に依存するデータにはローミングを使用しないでください。 Windows では、インスタント同期は保証されておらず、ユーザーがオフラインまたは待ち時間の長いネットワーク上にある場合、ローミングが大幅に遅延する可能性があります。 UI がインスタント同期に依存していないことを確認します。
  • 頻繁に変更されるデータにはローミングを使用しないでください。 たとえば、アプリが頻繁に変化する情報 (1 秒ごとの曲の位置など) を追跡する場合は、ローミング アプリ データとして保存しないでください。 代わりに、現在再生中の曲など、良好なユーザー エクスペリエンスを提供する頻度の低い表現を選択してください。

ローミングの前提条件

データのローミングに関する重要な注意事項を参照してください。

Microsoft アカウントを使用してデバイスにログオンする場合、どのユーザーもアプリ データのローミングの恩恵を受けることができます。 ただし、ユーザーとグループ ポリシー管理者は、デバイス上のローミング アプリ データをいつでもオフにできます。 ユーザーが Microsoft アカウントを使わない場合やデータのローミング機能を無効にする場合、ユーザーは引き続きアプリを使用できますが、アプリ データは各デバイスに対してローカルのままになります。

PasswordVault に格納されているデータは、ユーザーが "信頼" しているデバイスにしか移行されません。 デバイスが信頼されていない場合、このコンテナーでセキュリティ保護されたデータはローミングされません。

競合の解決

データのローミングに関する重要な注意事項を参照してください。

ローミング アプリ データは、一度に複数のデバイスで同時に使用することを目的としたものではありません。 特定のデータ ユニットが 2 つのデバイスで変更されたために同期中に競合が発生した場合、システムは常に最後に書き込まれた値を優先します。 これにより、アプリが最新の情報を利用できるようになります。 データ ユニットが設定コンポジットの場合でも、競合解決は設定ユニットのレベルで発生します。これは、最新の変更を含むコンポジットが同期されることを意味します。

データを書き込む場合

データのローミングに関する重要な注意事項を参照してください。

設定の予想される有効期間に応じて、異なる時刻にデータを書き込む必要があります。 変更頻度が低いアプリ データや緩やかに変化するアプリ データは、すぐに書き込む必要があります。 ただし、頻繁に変更されるアプリ データは、定期的な間隔 (5 分に 1 回など) と、アプリが中断されたときにのみ書き込む必要があります。 たとえば、音楽アプリでは、"現在の曲" の設定は新しい曲の再生が始まるたびに書き込みますが、曲の途中の実際の位置は中断したときにのみ書き込みます。

過剰な使用保護

データのローミングに関する重要な注意事項を参照してください。

システムには、リソースの不適切な使用を回避するためのさまざまな保護メカニズムが用意されています。 アプリ データが想定どおりに遷移しない場合は、デバイスが一時的に制限されている可能性があります。 しばらく待つと、通常、この状況は自動的に解決され、アクションは必要ありません。

バージョン管理

データのローミングに関する重要な注意事項を参照してください。

アプリ データでは、バージョン管理を利用して、あるデータ構造から別のデータ構造にアップグレードできます。 バージョン番号はアプリのバージョンとは異なり、必要に応じて設定できます。 強制ではありませんが、新しいデータを表すより低いデータ バージョン番号に移行しようとすると、望ましくない複雑な問題 (データ損失を含む) が発生する可能性があるため、増加するバージョン番号を使用することを強くお勧めします。

アプリ データは、同じバージョン番号のインストール済みアプリ間でのみローミングされます。 たとえば、バージョン 2 のデバイスは相互にデータを切り替え、バージョン 3 のデバイスは同じように動作しますが、バージョン 2 を実行しているデバイスとバージョン 3 を実行しているデバイスの間でローミングは行われません。 さまざまなバージョン番号を使用した新しいアプリを他のデバイスにインストールすると、新しくインストールされたアプリは、最も高いバージョン番号に関連付けられているアプリ データを同期します。

テストとツール

データのローミングに関する重要な注意事項を参照してください。

開発者は、ローミング アプリ データの同期をトリガーするためにデバイスをロックできます。 特定の期間内にアプリ データが遷移しない場合は、次の項目をチェックし、次の点を確認してください。

  • ローミング データは最大サイズを超えていません (詳細については、「RoamingStorageQuota」を参照してください)。
  • ファイルは閉じられ、正しくリリースされました。
  • 同じバージョンのアプリを実行しているデバイスが少なくとも 2 つあります。

ローミング データが変更されたときに通知を受信するように登録する

データのローミングに関する重要な注意事項を参照してください。

ローミング アプリ データを使用するには、ローミング データの変更に登録し、ローミング データ コンテナーを取得して、設定の読み取りと書き込みを行う必要があります。

  1. ローミング データが変更されたときに通知を受信するように登録します。

    DataChanged イベントは、ローミング データが変更されたときに通知します。 次の使用例は、ローミング データ変更のハンドラーとして DataChangeHandler を設定します。

void InitHandlers()
    {
       Windows.Storage.ApplicationData.Current.DataChanged += 
          new TypedEventHandler<ApplicationData, object>(DataChangeHandler);
    }

    void DataChangeHandler(Windows.Storage.ApplicationData appData, object o)
    {
       // TODO: Refresh your data
    }
  1. アプリの設定とファイルのコンテナーを取得します。

    ApplicationData.Roaming 設定 プロパティを使用して設定を取得し、ApplicationData.RoamingFolder プロパティを使用してファイルを取得します。

Windows.Storage.ApplicationDataContainer roamingSettings = 
        Windows.Storage.ApplicationData.Current.RoamingSettings;
    Windows.Storage.StorageFolder roamingFolder = 
        Windows.Storage.ApplicationData.Current.RoamingFolder;

ローミング設定の作成と取得

データのローミングに関する重要な注意事項を参照してください。

ApplicationDataContainer.Values プロパティを使用して、前のセクションで取得した roamingSettings コンテナーの設定にアクセスします。 この例では、exampleSetting と名付けられた単一の設定と、composite と名付られた複合値を作成します。

// Simple setting

roamingSettings.Values["exampleSetting"] = "Hello World";
// High Priority setting, for example, last page position in book reader app
roamingSettings.values["HighPriority"] = "65";

// Composite setting

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

roamingSettings.Values["exampleCompositeSetting"] = composite;

この例では、先ほど作成した設定を取得します。

// Simple setting

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

// Composite setting

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

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

ローミング ファイルの作成と取得

データのローミングに関する重要な注意事項を参照してください。

ローミング アプリ データ ストアでファイルを作成および更新するには、Windows.Storage.StorageFolder.CreateFileAsyncWindows.Storage.FileIO.WriteTextAsync などのファイル API を使用します。 この例では、roamingFolder コンテナーの dataFile.txt と名付けられたファイルを作成し、現在の日付と時刻をファイルに書き込みます。 CreationCollisionOption 列挙の ReplaceExisting 値は、ファイルが既に存在する場合は置き換えることを示します。

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

   StorageFile sampleFile = await roamingFolder.CreateFileAsync("dataFile.txt", 
       CreationCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTimeOffset.Now));
}

ローミング アプリ データ ストアでファイルを開いて読み取るには、Windows.Storage.StorageFolder.GetFileAsyncWindows.Storage.StorageFile.GetFileFromApplicationUriAsyncWindows.Storage.FileIO.ReadTextAsync などのファイル API を使用します。 次の使用例は、前のセクションで作成した dataFile.txt ファイルを開き、そのファイルから日付を読み取ります。 さまざまな場所からファイル リソースを読み込む方法の詳細については、「ファイル リソースを読み込む方法」を参照してください。

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

一時的なアプリ データ

一時アプリ データ ストアはキャッシュと同様に機能します。 そのファイルはローミングされず、いつでも削除できます。 システムメンテナンスタスクは、この場所に保存されているデータをいつでも自動的に削除できます。 ユーザーは、ディスク クリーンアップを使用して一時データ ストアからファイルをクリアすることもできます。 一時的なアプリ データは、アプリ セッション中に一時的な情報を格納するために使用できます。 必要に応じて、システムが使用領域を再利用する可能性があるため、このデータがアプリ セッションの終了を超えて保持される保証はありません。 この場所は temporaryFolder プロパティを使用して使用できます。

一時データ コンテナーを取得する

ApplicationData.TemporaryFolder プロパティを使用してファイルを取得します。 次の手順では、この手順の temporaryFolder 変数を使用します。

Windows.Storage.StorageFolder temporaryFolder = ApplicationData.Current.TemporaryFolder;

一時ファイルの作成と読み取り

一時アプリ データ ストアでファイルを作成して更新するには、Windows.Storage.StorageFolder.CreateFileAsyncWindows.Storage.FileIO.WriteTextAsync などのファイル API を使用します。 この例では、temporaryFolder コンテナーの dataFile.txt と名付けられたファイルを作成し、現在の日付と時刻をファイルに書き込みます。 CreationCollisionOption 列挙の ReplaceExisting 値は、ファイルが既に存在する場合は置き換えることを示します。

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

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

一時アプリ データ ストアでファイルを開いて読み取るには、Windows.Storage.StorageFolder.GetFileAsyncWindows.Storage.StorageFile.GetFileFromApplicationUriAsyncWindows.Storage.FileIO.ReadTextAsync などのファイル API を使用します。 次の使用例は、前の手順で作成した dataFile.txt ファイルを開き、そのファイルから日付を読み取ります。 さまざまな場所からファイル リソースを読み込む方法の詳細については、「ファイル リソースを読み込む方法」を参照してください。

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

コンテナーを使用してアプリ データを整理する

アプリのデータ設定とファイルを整理するために、ディレクトリを直接操作するのではなく、コンテナー (ApplicationDataContainer オブジェクトで表されます) を作成します。 コンテナーは、ローカル、ローミング、および一時的なアプリ データ ストアに追加できます。 コンテナーは、最大 32 レベルの深さまで入れ子にすることができます。

設定コンテナーを作成するには、ApplicationDataContainer.CreateContainer メソッドを呼び出します。 この例では、exampleContainer という名前のローカル設定コンテナーを作成し、exampleSetting という 名前の設定を追加します。 ApplicationDataCreateDisposition 列挙体の Always 値は、コンテナーがまだ存在しない場合に作成されることを示します。

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

// 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 Settings.Remove メソッドを使用します。 次の使用例は、先ほど作成した exampleSetting ローカル設定を削除します。

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

// Delete simple setting

localSettings.Values.Remove("exampleSetting");

複合設定を削除するには、ApplicationDataCompositeValue.Remove メソッドを使用します。 次の使用例は、前の例で作成したローカル exampleCompositeSetting 複合設定を削除します。

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

// Delete composite setting

localSettings.Values.Remove("exampleCompositeSetting");

コンテナーを削除するには、ApplicationDataContainer.DeleteContainer メソッドを呼び出します。 次の使用例は、先ほど作成したローカル exampleContainer 設定コンテナーを削除します。

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

// Delete container

localSettings.DeleteContainer("exampleContainer");

アプリ データのバージョン管理

必要に応じて、アプリのアプリ データのバージョンを設定できます。 これにより、以前のバージョンのアプリとの互換性の問題を引き起こすことなく、アプリ データの形式を変更する将来のバージョンのアプリを作成できます。 アプリはデータ ストア内のアプリ データのバージョンをチェックし、バージョンがアプリで想定されているバージョンより小さい場合、アプリはアプリ データを新しい形式に更新し、バージョンを更新する必要があります。 詳細については、Application.Version プロパティと ApplicationData.SetVersionAsync メソッドを参照してください。