「UWPCommunityToolkitでUWPからOneDriveに簡単にアクセスできると分かったのでやってみた。罠が1つあるが簡単だったので手順を説明する」
「UWPCommunityToolkitってなに?」
「これ」
「ここからダウンロードするの?」
「そうではない。nugetで入れる。以下に手順を説明する」
- nugetでMicrosoft.Toolkit.Uwp.Servicesを入れる
- アプリをストアに関連づける。関連づけるだけで良い。パッケージを作成する必要もアップロードする必要もない。(IDが必要だから)
- using Microsoft.Toolkit.Uwp.Services.OneDrive;をソース先頭に挿入
- OneDriveのルートフォルダを取得する。var folder = await OneDriveService.Instance.RootFolderAsync(); (ログイン中のユーザーのもの)
- await folder.GetFilesAsync()でファイルを列挙等の処理ができる
「どこが罠?」
「ストアに関連づける部分。アップロードする必要はないが関連付けだけは必要」
「ルートフォルダの型は?」
「StorageFolderだと良いのだが、実際はOneDriveStorageFolder。でもIStorageFolderは実装しているから統一的に扱うことはできそうだ」