入力しながら
あらゆるファイルを見つける。
sgcFSearch は固定ドライブ上のすべてのファイルとフォルダーの名前をインデックス化し、クエリにミリ秒で応答して、ファイルが変わってもインデックスを最新に保ちます。どの手順でも管理者権限は不要です。
Release ビルドを使った 1 台の PC での QA 計測です。C: ドライブの 3,404,349 ファイルと 447,577 フォルダーを初回クロールしました。結果はディスク、CPU、ファイル数によって異なります。
ファイルがあることは分かっているのに、どこにあるのか分からない。sgcFSearch は、その探し回る時間を終わらせる、無料の Windows 向けディスク全体ファイル検索ツールです。どこでも Alt+Shift+Space を押して入力を始めると、1 キーごとに、数百万ファイルの中から一致度の高い順に結果が表示されます。
インデックスは小さなトレイアプリが 1 つで保持します。検索バー、sgcfs コマンドライン、独自のツールはすべて同じ質問をそのアプリに投げるため、どのクライアントにも同じ結果が見えます。通常のユーザーアカウントで動作し、すべての固定ドライブをインデックス化し、特権のないインターフェイスで NTFS 変更ジャーナルを読み取るため、管理者権限を求めることはありません。sgcFSearch は eSeGeCe が Delphi で作成した無料ツールです。その代わりに、検索バーに小さな “made by esegece.com” の表示が入ります。
sgcFSearch が入力中にファイルを見つける様子をご覧ください。YouTube でも公開しています。
キーを押すたびに結果を表示
検索バーは入力中に、ファイルアイコンと強調表示された一致文字とともに結果を表示します。Enter でファイルを開き、Ctrl+Enter で保存先フォルダーを表示します。入力した単語はすべてファイル名またはフォルダー名に一致する必要があり、大文字小文字は区別せず、単語は任意の順序で構いません。
ランキングは使うほど学習します。結果は一致の品質とフォルダーの深さでスコア付けされ、開いたりコピーしたりしたファイルが上位に上がります。使用履歴は 14 日ごとに重みが半分になるため、古い習慣は自然に薄れていきます。
1 文字の間違いなら大丈夫
5 文字以上の単語は、1 文字の誤りがあっても一致します。文字の欠落、余分な文字、別の文字、隣り合う 2 文字の入れ替わりが対象です。そのため confgi で config.json が、raport で report.pdf が見つかります。タイプミスによる一致は最も低い一致ランクになるため、通常は完全一致より下に表示されます。
クリックで絞り込み
種類、更新日時、サイズ、フォルダー内、並べ替えの各チップが、type:images や mtime:week などのフィルターをクエリに書き込みます。手で入力したフィルターも、対応するチップが点灯します。検索バーは直近 50 件の検索も記憶しており、入力欄が空のときは Up で呼び出せます。
ファイルの中身を検索
ファイル名は話の半分にすぎません。grep:TODO は、内容フォルダー配下のファイルから、そのテキストを含む行を一覧表示します。内容フォルダーは既定ではユーザーフォルダーです。regex: は正規表現に一致する行を探し、sym: はシンボルが定義されている場所を探します。ファイル名が 1 つも一致しない場合は、sgcFSearch が自動的にファイルの中身を検索します。
内容インデックスは、内容フォルダー内のテキストのトライグラムインデックスです。プレーンテキストとソースコード、Office をインストールしなくても読める Word、Excel、PowerPoint ファイル、OpenDocument ファイル、そして Windows のフィルター経由の PDF を読み取ります。候補は検索時に再度読み込まれるため、古いデータから結果が出ることはありません。
管理者権限なしで常に最新
names.idx に保存され、次回起動時に約 1 秒で読み込まれます。邪魔にならないクエリ言語
単語とフィルターはスペースで区切り、順序は自由です。修飾子で単語を名前の先頭や末尾に固定でき、フィルターは拡張子、種類、区分、フォルダー、パス、サイズ、更新日、正規表現、件数制限、並べ替えに対応します。ユーザーガイドからの例をいくつか紹介します。
| 入力 | 見つかるもの |
|---|---|
report ext:pdf mtime:month | 名前に “report” を含み、過去 30 日以内に更新された PDF ファイル |
^setup ext:exe in:~\Downloads | Downloads フォルダー内で、名前が “setup” で始まる実行ファイル |
'package.json !node_modules\ | 名前が正確に package.json で、node_modules フォルダーの中にないファイル |
type:videos size:>1gb sort:size | 1 GB を超える動画を、大きい順に |
.log$ size:>100mb mtime:>30d | 1 か月間触れていない大きなログファイル |
ext:dproj in:C:\Projects in:D:\Work | どちらかのフォルダーにある Delphi プロジェクト |
grep:TODO ext:pas in:~\Projects | Projects フォルダーの Pascal ファイルで “TODO” を含む行 |
sym:ParseQuery | ソースファイル内で ParseQuery が定義されている場所 |
ターミナルから同じインデックスを利用
sgcfs はパイプ経由で実行中のアプリと通信し、必要ならバックグラウンドで起動します。パスは stdout に、サマリーは stderr に出力されるため、結果をそのまま PowerShell にパイプできます。通常、詳細、JSON の出力形式、スクリプト用の終了コード、JSON lines ブリッジを備えています。実際のセッションです。
PS> sgcfs -n 8 notepad ext:exe
C:\Windows\notepad.exe
C:\Windows\SysWOW64\notepad.exe
C:\Windows\System32\notepad.exe
C:\Program Files\Notepad++\notepad++.exe
C:\Windows\WinSxS\wow64_microsoft-windows-notepad_31bf3856ad364e35_10.0.26100.9549_none_15298a72546c8c3f\notepad.exe
C:\Windows\WinSxS\wow64_microsoft-windows-notepad_31bf3856ad364e35_10.0.26100.8972_none_1501e9325489977a\notepad.exe
C:\Windows\WinSxS\amd64_microsoft-windows-notepad_31bf3856ad364e35_10.0.26100.9278_none_0af8678a1ff0a8d5\notepad.exe
C:\Windows\WinSxS\wow64_microsoft-windows-notepad_31bf3856ad364e35_10.0.26100.9549_none_15298a72546c8c3f\r\notepad.exe
12 results, 8 shown (16.14 ms)
PS> sgcfs bench
query server ms round trip results
one word 13.79 14.25 21113
typo 12.91 13.39 21318
two words 12.65 13.14 670
filtered 11.92 12.44 2147
content grep 44.44 44.94 100
median of 20 runs per query, one connection
お使いの PC で sgcfs bench を実行すると、ディスクと CPU の実力を確認できます。どの検索にも --json を付ければ、たとえば sgcfs --json -n 2 kernel32.dll のように、各結果のパス、サイズ、更新時刻、スコアを含む生の JSON 応答が得られます。
インストール方法は 2 通り
ダウンロードは 2 種類です。署名済みのインストーラー sgcFSearch_setup.exe はユーザー単位でインストールし、スタートメニューの項目を追加して、ログイン時にアプリを起動し、sgcfs を PATH に追加することもできます。zip の sgcFSearch.zip には、手動インストール用に、署名済みの sgcFSearch.exe と sgcfs.exe、そしてユーザーガイドが入っています。フォルダーを好きな場所に展開して sgcFSearch.exe を実行し、sgcfs install --login で同じ 2 つの項目を追加、sgcfs uninstall で削除します。
Windows 10 バージョン 1809(ビルド 17763)以降、または 64 ビットの Windows 11 が必要です。メモリとディスクの使用量はファイル数に応じて増えます。340 万ファイルの場合、QA 用 PC ではメモリ 306 MB と 202 MB の names.idx を使用しました。
ディスク全体をミリ秒で検索
Windows 10 と 11 x64 向けの無料ツールです。署名済みのインストーラー、または手動インストール用の zip を入手してください。
ご質問やご意見はありますか?お問い合わせください。コードを書いた本人たちが返信します。
