高速なファイル名検索ソフト Everything をWindows利用中の開発者にお勧めしたい

日本語版 [Windows3.1](https://ja.wikipedia.org/wiki/Microsoft_Windows_3.x) が発売されて25年、四半世紀が経過しました。その間ずっと Windows をメインで使ってきたわけですが、以下のソフトには日々、お世話になっています。

* [あふｗ](http://akt.d.dooo.jp/akt_afxw.html) 2画面ファイラー
* [Everything](http://www.voidtools.com/) ファイル名検索ソフト
* [PDIC(Personal Dictionary)](http://pdic.la.coocan.jp/unicode/) 辞書検索ツール + [英辞郎](https://booth.pm/ja/items/777563)
* [Greenshot](http://getgreenshot.org/) 画面キャプチャ

順番は使用頻度で、これらが無ければ Windows を使う価値がない！ぐらいに愛用しています。今回はこの中から Everything をご紹介します。

なお git, Node.js, Unity, Docker、RPGツクールなど開発系のツール、Chrome, Atom, GIMP など他環境でも有名なツールは上記に含みません。

# ファイル名からをファイルを探す

Windows 環境で「atom.exe って何処だっけ？」と思った場合、一般的にはエクスプローラーにある検索窓から

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/0ecaf025-2156-af69-e7de-d0387045dd1c.png)

という風に探すと思われますが、これすごく時間かかりますよね？そしてコマンドプロンプトに慣れた方だと、たぶん

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/9b04a989-5778-c727-a00b-2bc8ad0c28cb.png)

と where コマンドあたりを使うと思いますが、これもけっこう時間かかります。

# Everything とは

[Everything](http://www.voidtools.com/) は高速なファイル名の検索ソフトで、GUI 画面からファイルの検索ができます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/a1a7ab72-e634-9931-c95a-c3fef88badc1.png)

使って驚くのは、その圧倒的な高速さ。Everything は独自にファイル名の検索データベースを構築していて、それを裏で自動で更新しています。なので検索は驚くほど速く、文字を入力するたびに下の検索結果が絞り込まれていく感じで操作できます。

Everything の基本的な使い方については、ググると先人たちの素晴らしい説明を多数見つけることができますので、幾つかご紹介しておきます。

* [「Everything」高速なファイル検索ソフト - 窓の杜](https://forest.watch.impress.co.jp/library/software/everything/)
* [PC内のファイル検索が超高速なフリーソフト「Everything」の使い方](https://freesoft.tvbok.com/freesoft/pc_system/everything.html)
* [Everything の検索対象フォルダにネットワークドライブを追加する方法](https://obel.hatenablog.jp/entry/20170902/1504326886)

# オフラインディスクのインデックスが便利

個人的なお勧めは「ツール -> オプション」から NTFS の項目で設定できる、オフラインディスクを「データベースに含める」機能です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/62dc4189-9345-effe-fce0-a426c5206567.png)

我が家には何台ものUSB接続のHDDディスクがありますが、どれにどんなファイルが入っているかすぐ忘れてしまいます。この Everything でも標準の動作は

* HDDなどが接続されると、そのインデックスを読み込んでDBに自動で追加する
* HDDなどが外されると、そのインデックスをDBからに自動で削除する

となっていますが、この「データベースに含める」をチェックしておくと、接続を外しても(オフラインにしても)DBにインデックス情報が残ります。この機能を使って、全部のUSB HDDのインデックスをDBに残しています。

※ ドライブ番号を固定にして、HDDごとに異なったドライブ番号を指定しておくのがポイント

なので例えば「2016年の年賀状用の住所録、どこにバックアップしたっけ？」と困ったときは、Everything で検索すれば、どのディスクに入っているかすぐに発見できるわけです。

# 開発者にお勧めする理由

さて、ここからは開発者、もしくは Windows の動作をより深く理解したい方向けの紹介になります。

## Windows の動作を理解する

Everything は対象HDDのインデックスDBを独自に作成し、それを自動更新しています。単にファイルを探すだけでなく、そのDBを更に有効活用してみましょう。

Everything を起動した直後は、キーワードが特に指定されておらず、下のリストにはインデックスの全ファイル名がリストされています。そこで「作成日時」の部分をクリックして

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/6cf45e45-ea7f-63a1-e668-e35e0913d91d.png)


と、ファイルリストを降順ソートすると、検索結果に新しく作成されたファイルがずらっと並びます。Windows に慣れていない方は、あまりに多くの見知らぬファイルが裏で作成されていること、更新され続けていることを知って驚くのではないでしょうか？

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/64127e1b-c19b-b7c3-71d6-09640acc9f93.png)

これを表示させっぱなしで Windows を操作してみると、様々な機能やアプリが裏でログファイルやキャッシュファイルを作りまくっているのがわかり、面白いです。

## 対象外ファイルを除外する

さて前述のとおり Everything を上げっぱなしにして眺めていると、裏で作成されるファイルが多すぎて、全てを把握することが困難だと気がつくでしょう。特に幾つかのディレクトリで頻繁にログやキャッシュファイルが作成されていることに気がつくはずです。

そこで「ツール -> オプション」から 除外 の項目を選択し、これらのディレクトリをインデックスの対象から外しましょう。このディレクトリが重要なのはわかった、もう報告はいい、という感じですかね。

例えば以下は、私の現在の設定例になります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/1c1cfd59-b6e8-b77f-5275-391079d67562.png)

こうやって除外したリストの更新を眺めてみて、目につくほど一時ファイルが作成されているディレクトリがあればそれも除外する、ってしばらく運用してみましょう。把握できる分量の更新に落ち着くはずです。

## ソフトウェアの導入をウォッチする

さて、実はここからがこの投稿の本題です。

私は「開発系は /local/dev/ にまとめたい」などと(部屋は整理しない癖に)ディレクトリ構成を整理するのが大好きです。なのでちょっとムカつくのが

> インストール先を訊かないで、勝手に決め打ちしてくれやがるインストーラー

で、なるべく zip/taz ベースの配布を探してしまう癖があります。

でも世の中にはインストーラーしか配布していないソフトも多いわけで、しかもインストール先を指定しても設定フォルダは勝手に別に作るソフトも多くあります。特に Windows 用はカオスな気が。

そこで活躍するのが、Everything を使用したファイル作成のウォッチですよ。

前述の運用を通して、除外リストが育っていますから、日常の一時ファイル生成はほとんどインデックスされないはずです。それに加え、なるべく他ソフト、常駐ソフトなども終了させクリーンな状況をつくります。

※ なるべくクリーンな状況にするのはインストールの基本ですねっ

後は簡単、適当な時間(覚えておく)に対象ソフトをインストールし、インストール後に Everything の作成日逆順ソートで、その時間以降に作成されたファイルの一覧を確認します。

あ、指定した以外に、こんなところに設定ファイル作っている、とか。あ、こんなところに mp3 データを置いてる、聴いてやれ、とか。おやこの画像は何だい？とか。

インストーラーがやっていた作業が丸わかり、というわけです。特に開発環境などでファイルの状況を理解しておくと、何か開発上でトラブルがあった場合に、解決のヒントになることもあるのではないでしょうか。

# というわけで

普段お世話になっている Everything について、感謝の意味もこめ、開発者視点(?)からのお勧め記事を作成してみました。

普通に使うだけでも凄く便利ですので、皆さんよろしければ是非、使ってみてください。

ではでは。