2017年07月05日

IFilter で読み込めませんでした。エラーコード 80004005 (E_FAIL)

たくさんのテキストファイルの中から特定のキーワードを検索したいと思って、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ファイルを解凍して出てきたファイルを、適当なフォルダに入れればインストールは完了です。早速起動してみます。

20170705-searchfilterview-001.png

起動するとシステムに登録されている IFilter の状況を検索するため少々時間がかかります。Office関係のフィルタが何個か登録されているようですが、リストの中にある「query.dll Plain Text filter」に注目します。

一覧の中の行をクリックすると、下のエリアには登録されている拡張子が表示されます。これらの拡張子に該当すると Plain Text として扱われるようですが、拡張子を調べていくと .pas がありません。

そこで、.pas を Plain Text として登録するために、メニューの [File] → [Add Extensions To Filter] をクリックします。登録した拡張子「pas」を入力し、[OK] をクリックします。
20170705-searchfilterview-002.png

拡張子の一覧を調べてみると「.pas BDS.pas Delphi ソース ファイル」という具合に登録されているようです。この行をダブルクリックするか、Property を選択すると登録内容を編集できるようです。とりあえずこのままで動作には問題がないようですので、[File] → [Exit] でツールを終了します。

LightGREP に戻って pas ファイルに対する検索を行ったところ、エラーメッセージは表示されなくなりました。

LightGREP に限りませんが、明らかにテキストファイルなのに拡張子が違うだけで IFilter に関するエラーが表示されるという場合は、この方法で拡張子を登録するのが良さそうです。


posted by はるこち at 19:00| Comment(0) | TrackBack(0) | パソコン関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。