クイック スタート: ローカル アプリ データ (HTML)
ローカル アプリ データ ストアからのファイルと設定の保存と取得について説明します。
アプリの設定とファイルのコンテナーを取得する
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.createFileAsync や Windows.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.getFileAsync、Windows.Storage.StorageFile.GetFileFromApplicationUriAsync、Windows.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
サンプル