LocalStateフォルダーを使用して、Windows8アプリケーションのキャッシュを有効にしています。サンプルデータを提供するために(アプリケーションはWebサービスを使用してデータを収集します)、すでにキャッシュされているデフォルトのデータの束を提供したいと思います。
アプリケーションパッケージに含まれるLocalStateのサンプルデータを提供できますか?
LocalStateフォルダーを使用して、Windows8アプリケーションのキャッシュを有効にしています。サンプルデータを提供するために(アプリケーションはWebサービスを使用してデータを収集します)、すでにキャッシュされているデフォルトのデータの束を提供したいと思います。
アプリケーションパッケージに含まれるLocalStateのサンプルデータを提供できますか?
ファイルをパッケージに入れ、起動時にローカルフォルダにすでにデータがあるかどうかを確認します。ない場合は、パッケージストレージからデータをコピー/入力します(たとえば、 CopyAsyncを参照)。もしそうなら、何もしません。
サンプルの JS コードを次に示します。.NET にかなり簡単に変換できるはずです。Promises の代わりに async/await を使用します。
WinJS.Application.local.exists('somedata.json').done(
function (found) {
if (!found) {
return copyStartData('somedata.json');
}
}
);
function copyStartData(copyfile) {
return Windows.ApplicationModel.Package.current.installedLocation.getFolderAsync('startdata').then(
function (startData) {
return startData.getFileAsync(copyfile).then(
function (file) {
if (file) {
return file.copyAsync(WinJS.Application.local.folder);
}
});
});
}
この関数は、インストール パッケージからユーザーのローカル マシンにコピーするファイルの名前を受け取ります。