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

Applies to Windows and Windows Phone

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

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

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

var localSettings = applicationData.localSettings;
var localFolder = applicationData.localFolder;

以降の手順では、この手順の localSettings 変数と localFolder 変数を使います。

データを設定に書き込む

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

// Simple setting

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

ApplicationDataCompositeValue オブジェクトには、アトミックにアクセスする必要がある設定が含まれています。次の例では、exampleCompositeSetting という名前のコンポジット設定を作成し、localSettings コンテナーに追加します。

// Composite setting

var 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

var container = localSettings.createContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.always);

if (localSettings.containers.hasKey("exampleContainer"))
{
    localSettings.containers.lookup("exampleContainer").values["exampleSetting"] = "Hello Windows";
}

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

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

// Simple setting

var value = localSettings.values["exampleSetting"];
        
if (!value)
{
    // No data
}
else
{
    // Access data in value
}

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

// Composite setting

var composite = localSettings.values["exampleCompositeSetting"];

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

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

// Setting in a container

var hasContainer = localSettings.containers.hasKey("exampleContainer");

if (hasContainer)
{
    // Access data in localSettings.containers.lookup("exampleContainer").values.hasKey("exampleSetting");
}

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

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

function writeTimestamp() {
   localFolder.createFileAsync("dataFile.txt", Windows.Storage.CreationCollisionOption.replaceExisting)
      .then(function (sampleFile) {
         var formatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");
         var timestamp = formatter.format(new Date());

         return Windows.Storage.FileIO.writeTextAsync(sampleFile, timestamp);
      }).done(function () {      
      });
}

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

ローカル アプリ データ ストアのファイルを開いて読み取るには、Windows.Storage.StorageFolder.getFileAsyncWindows.Storage.StorageFile.GetFileFromApplicationUriAsyncWindows.Storage.FileIO.readTextAsync などのファイル API を使います。この例では、前の手順で作成した dataFile.txt ファイルを開き、ファイルから日付を読み取ります。CreationCollisionOption 列挙体の openIfExists 値は、ファイルが存在する必要があることを示します。さまざまな場所からファイル リソースを読み込む方法について詳しくは、「ファイル リソースを読み込む方法」をご覧ください。

function readTimestamp() {
   localFolder.getFileAsync("dataFile.txt")
      .then(function (sampleFile) {
         return Windows.Storage.FileIO.readTextAsync(sampleFile);
      }).done(function (timestamp) {
         // Data is contained in timestamp
      }, function () {
         // Timestamp not found
      });
}

完了した設定を削除する

exampleSetting 設定の操作が完了したら、ApplicationDataContainerSettings.remove メソッドを呼び出して設定を削除します。

// 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

サンプル

アプリケーション データ サンプルに関するページ