かずきのBlog@hatena

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

指定したフォルダ以下の任意の拡張子のファイルをゲットしたい!

という要望を受けたのでカリっとコード片を。

var picker = new FolderPicker();
// なぜファイルタイプの指定がいるのだ
picker.FileTypeFilter.Add(".txt");
// フォルダを"ユーザ"に選択してもらう
var folder = await picker.PickSingleFolderAsync();
// ファイルを問合せるクエリを作成
var q = folder.CreateFileQuery();
q.ApplyNewQueryOptions(
  // jpgファイルを配下のフォルダ全部対象にとってくる
  new QueryOptions(
    CommonFileQuery.DefaultQuery, 
    new[] { ".jpg" }) 
  { 
    FolderDepth = FolderDepth.Deep 
  });
// 対象ファイルくださいな
var fs = await q.GetFilesAsync();

// 煮るなり焼くなり好きにしてください
foreach (var f in fs)
{
    // StorageFileのパスを表示
    Debug.WriteLine(f.Path);
}