StorageFileをアプリデータとして取り込むには

例えば画像ファイルなどをアプリ内でキャッシュするためにアプリ内データとして取り込みたいとして、いちいちbyteデータに変換してまたApplicationData.LocalFolderないにファイルを作り書き込むぐらいならStorageFileごとコピーしてしまった方が簡単でコストがかかりません。

StorageFileはCopyAsyncメソッドで任意のStorageFolderにファイルをコピーすることができます。

 

画像データの場合、StorageFileごとApplicationData.Current.LocalFolderにコピーを作り、そのパスをImageコントロールのSourceに設定すると楽です。

//Storageファイルを取得
FileOpenPicker picker = new FileOpenPicker();
picker.FileTypeFilter.Add(".png");
IStorageFile file = await picker.PickSingleFileAsync();

//アプリデータへの取り込み
StorageFolder folder=ApplicationData.Current.LocalFolder;
IStorageFile innerFile=await file.CopyAsync(folder,"hogehoge.png");

image.Source =new BitmapImage(new Uri(innerFile.Path));

 

garicchi
対話システムとSFとアニメが好き たまにMicrosoftコミュニティに出現します たまに日経Linuxとラズパイマガジンで記事を書いたり Microsoft MVP 2014~2018(引退済み)

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください