たくさんのテキストファイルの中から特定のキーワードを検索したいと思って、LightGrep というフリーソフトを使ったところ、下記のようなエラーメッセージが表示されてしまいました。
ファイル「****.pas」を IFilter で読み込めませんでした。エラーコード 80004005 (E_FAIL)
LightGrep はテキストデータの高速検索が特徴のツールですが、Word 文書や PDF ファイルの中身も検索できるようになっていて、それらの非テキストファイルを検索するときは Windows に備わっている IFilter という機能を使うようです。
テキスト検索 LightGREP
今回エラーが表示された .pas という拡張子は、Delphi という開発言語のソースファイルの拡張子なのですが、中身は普通のテキストファイルなので、検索できると思ったのにエラーが表示されてしまいました。
実際には検索できていて該当箇所も表示されているのですが、ファイルが沢山あるためにエラーメッセージも沢山表示されてしまい、肝心の該当箇所が埋もれてしまうので対策することにしました。
Microsoft Platform SDK などの開発ツールがインストールされている環境には IFilter の登録状況を調べたりするツールも入っているらしいのですが、もっとわかりやすいツールはないかと思って探してみたところ、ありました。
SearchFilterView – View the IFilters list of Windows search
ダウンロードしたzipファイルを解凍して出てきたファイルを、適当なフォルダに入れればインストールは完了です。早速起動してみます。
起動するとシステムに登録されている IFilter の状況を検索するため少々時間がかかります。Office関係のフィルタが何個か登録されているようですが、リストの中にある「query.dll Plain Text filter」に注目します。
一覧の中の行をクリックすると、下のエリアには登録されている拡張子が表示されます。これらの拡張子に該当すると Plain Text として扱われるようですが、拡張子を調べていくと .pas がありません。
そこで、.pas を Plain Text として登録するために、メニューの [File] → [Add Extensions To Filter] をクリックします。登録した拡張子「pas」を入力し、[OK] をクリックします。
拡張子の一覧を調べてみると「.pas BDS.pas Delphi ソース ファイル」という具合に登録されているようです。この行をダブルクリックするか、Property を選択すると登録内容を編集できるようです。とりあえずこのままで動作には問題がないようですので、[File] → [Exit] でツールを終了します。
LightGREP に戻って pas ファイルに対する検索を行ったところ、エラーメッセージは表示されなくなりました。
LightGREP に限りませんが、明らかにテキストファイルなのに拡張子が違うだけで IFilter に関するエラーが表示されるという場合は、この方法で拡張子を登録するのが良さそうです。
0件のコメント