読者です 読者をやめる 読者になる 読者になる

がりらぼ

WindowsRuntimeの応援ブログ

WinRT:ファイル検索を行うには

WindowsRuntime

QueryOptions

StorageFolder内のファイルを検索するには、検索条件としてQueryOptionsを指定する必要があります。

QueryOptionsはさまざまなプロパティがありますが、今回はApplicationSearchFilerとFileTypeFilterを使います。

ApplicationSearchFilterには高度なクエリ構文(AQS)を指定し、ファイル名検索を行います。

FileTypeFilterはファイルタイプによる検索です。

QueryOptions options = new QueryOptions();
options.ApplicationSearchFilter = textQuery.Text;
options.FileTypeFilter.Add(".jpg");
options.FileTypeFilter.Add(".png");

ファイル名はテキストボックスから受け取った値で、ファイルタイプはjpgとpngを検索してみましょう。

検索対象のフォルダはピクチャライブラリとします。マニフェストファイルを編集して画像ライブラリにチェックをいれましょう。

StorageFolderのCreateFileQueryWithOptionsメソッドで検索設定を行います。

その後StorageFileQueryResultのGetFileAsyncメソッドを実行することで検索を行います。

//検索フォルダーをピクチャライブラリに
StorageFolder folder = KnownFolders.PicturesLibrary;
//検索条件設定
StorageFileQueryResult result=folder.CreateFileQueryWithOptions(options);
//ファイル列挙
IReadOnlyList<StorageFile> files =await result.GetFilesAsync();

//リストボックスにセット
listBox.ItemsSource = files.Select(q=>q.Name);

ファイル検索ができました。

f:id:garicchi:20141208235549p:plain