C#アプリからWindows File Explorerでファイル検索結果を表示する
C#のアプリから品番で商品の写真を検索する等、時々WindowsのFile Explorerでファイルの検索結果を表示する必要があります。
アプリ自体は検索結果の表示機能を実装していない場合はWindowsのFile Explorerで検索結果を表示させるのが近道です。
今回はsearch-ms:
プロトコルでの検索方法をメモします。
目次
C#からWindows File Explorerで検索結果を表示する
指定場所でkeywordを検索するC#サンプルコード
string keyword = ".cs";
string location = "E:\\test";
string queryString = $@"search-ms:query={keyword}&crumb=location:{location}";
ProcessStartInfo processStartInfo = new ProcessStartInfo(queryString);
processStartInfo.UseShellExecute=true;
Process.Start(processStartInfo);
構文説明
search-ms
プロトコル
search-ms:
プロトコルを指定すれば、WindowsではデフォルトとしてFile Explorerで検索画面を開く。search:
でも動くようです。
query=keyword
検索するキーワードを指定します。
crumb=location:E:\test
検索する場所を指定します。
他の例
編集された日付指定で検索
string queryString = $@"search-ms:query={keyword} datemodified:2021-11-05&crumb=location:{location}";
datemodified:today
やdatemodified:yesterday
等でも検索できるようですが、Windowsの言語によって挙動が異なる可能性があります(テストしていません)ので、日付の絶対値で無難だと思います。
編集された日付範囲指定で検索
string queryString = $@"search-ms:query={keyword} datemodified:2021-11-01..2021-11-05&crumb=location:{location}";
2021/11/1から2021/11/5の期間内に編集されたファイルを検索
ファイルの種類で検索
string queryString = $@"search-ms:query={keyword} kind:picture datemodified:2021-10-01..2021-10-31&crumb=location:{location}"
写真タイプのファイルを検索
検索方法をさらに広げる
実際にWindows Explorerの検索画面で、検索オプションでいろいろ検索の条件を変えられます。
その条件での検索構文は検索ボックスで見ることができます。
ただし、Windowsの言語によって構文が異なると記憶していますが、テストしていません。
他の言語のWindowsを使うユーザーがいる場合は要注意です。
コメント
コメントを投稿
個人情報を記入しないようご注意ください