かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

Windows 8.1 アプリから UWP へのアップグレード時の ApplicationData.Current.LocalFolder の中身

前準備

アプリ名を予約しておきます。 同じアプリに紐づけた Windows 8.1 アプリと UWP アプリを準備します。

試したこと

ローカルデータの保存場所

UWP やストアアプリでローカルデータを保存しておくための ApplicationData.Current.LocalFolder のパスが同じか確認します。 Windows 8.1 アプリを起動してパスを表示しました。

Windows 8.1 アプリの ApplicationData.Current.LocalFolder.Path の値
C:\Users\UserName\AppData\Local\Packages\45014okazuki.Win8ToUWPSample_r82gs1ecy8g7c\LocalState

次に同じコードを UWP でも動かしてみました。

UWP アプリの ApplicationData.Current.LocalFolder.Path の値
C:\Users\UserName\AppData\Local\Packages\45014okazuki.Win8ToUWPSample_r82gs1ecy8g7c\LocalState

同じですね!!

アップデート時の動作

上記フォルダは、アプリのアンインストールで消えた気がするので Win 8.1 アプリから UWP アプリに変わるタイミングでアンインストールされたら悲しいですよね。 ということでパッケージを作ってサイドローディングで試してみました。

  1. Windows 8.1 アプリをインストール
  2. Windows 8.1 アプリで LocalFolder にファイルを書き込み
  3. UWP アプリをインストール
  4. UWP アプリで LocalFolder のファイルを読み込み

結果はサイドローディングではファイルは消えずに引き継がれました。 やったね!

ストアも多分一緒でしょう。ちょちょっと試すには審査通過しないといけないからそこらへんがちょっと辛いですね。

まとめ

Windows 8.1 アプリから UWP にしてもローカルのファイルは消えないし、同じ場所を参照するのでデータ引継ぎは OK っぽい。