かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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 っぽい。