边输入边
找到任何文件。
sgcFSearch 为固定驱动器上每个文件和文件夹的名称建立索引,毫秒级响应查询,并在文件变化时保持索引最新。任何步骤都无需管理员权限。
在一台 PC 上使用 Release 构建的 QA 测量结果:首次扫描 C: 盘,共 3,404,349 个文件和 447,577 个文件夹。您的数据取决于磁盘、CPU 和文件数量。
您知道文件就在那里,只是不知道它在哪里。sgcFSearch 是一款适用于 Windows 的免费全盘文件搜索工具,让您不再四处翻找。在任何位置按下 Alt+Shift+Space,开始输入,每按一次键都会出现结果,最佳匹配排在最前,来自数百万个文件。
由一个小型托盘应用管理索引。搜索栏、sgcfs 命令行和您自己的工具都向它提出相同的查询,因此每个客户端看到的结果都一样。它以普通用户账户运行,索引每个固定驱动器,并通过无需特权的接口读取 NTFS 变更日志,因此从不要求管理员权限。sgcFSearch 由 eSeGeCe 使用 Delphi 编写,并且免费。作为回报,它只在搜索栏中带有一行小小的“made by esegece.com”。
观看 sgcFSearch 边输入边查找文件。也可在 YouTube 观看。
每次按键都有结果
搜索栏在您输入时显示结果,带有文件图标和高亮的匹配字母。Enter 打开文件,Ctrl+Enter 在所在文件夹中显示该文件。您输入的每个单词都必须与文件或文件夹名称匹配,不区分大小写,单词可以任意顺序出现。
排序会向您学习。结果按匹配质量和文件夹深度打分,您打开或复制过的文件会排得更靠前。使用记录每过 14 天权重减半,因此旧习惯会自行淡出。
错一个字母也没关系
5 个字母及以上的单词允许有一处错误:缺少、多出或不同的字母,或相邻两个字母顺序颠倒。因此 confgi 可找到 config.json,raport 可找到 report.pdf。拼写容错匹配属于最低匹配等级,因此通常排在精确匹配之后。
一键缩小范围
“类型”“修改时间”“大小”“所在文件夹”和“排序”标签会把 type:images 或 mtime:week 之类的筛选条件写入查询。您手动输入的筛选条件也会点亮对应的标签。搜索栏还会记住您最近的 50 次搜索:输入框为空时,按 Up 即可调出。
搜索文件内部
文件名只是故事的一半。grep:TODO 会列出内容文件夹下各文件中包含该文本的行,内容文件夹默认是您的用户文件夹。regex: 匹配正则表达式,sym: 查找符号的定义位置。当没有任何文件名匹配时,sgcFSearch 会自动在文件内部查找。
内容索引是对内容文件夹中文本建立的三元组索引。它可读取纯文本和源代码、无需安装 Office 即可处理 Word、Excel 和 PowerPoint 文件、OpenDocument 文件,并通过 Windows 筛选器处理 PDF。候选项会在搜索时重新读取,因此结果绝不会来自过期数据。
始终保持最新,无需管理员权限
names.idx,下次启动时约一秒即可加载。不碍事的查询语法
单词和筛选条件以空格分隔,顺序任意。修饰符可将单词固定在名称的开头或结尾,筛选条件涵盖扩展名、类型、种类、文件夹、路径、大小、修改日期、正则表达式、数量限制和排序。以下是用户指南中的几个示例:
| 您输入 | 您找到 |
|---|---|
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 | 一个月内未被改动的大型日志文件 |
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 响应,其中包含每个结果的路径、大小、修改时间和得分。
两种安装方式
提供两种下载。已签名的安装程序 sgcFSearch_setup.exe 按用户安装,添加开始菜单项,并可在登录时启动应用,还可将 sgcfs 加入 PATH。zip 包 sgcFSearch.zip 包含已签名的 sgcFSearch.exe 和 sgcfs.exe 以及用于手动安装的用户指南:将文件夹解压到任意位置并运行 sgcFSearch.exe,然后 sgcfs install --login 会添加同样的两项,sgcfs uninstall 则将其移除。
您需要 Windows 10 版本 1809(build 17763)或更高版本,或 64 位 Windows 11。内存和磁盘占用随文件数量增长。对于 340 万个文件,QA 用 PC 占用了 306 MB 内存和 202 MB 的 names.idx。
有问题或反馈?欢迎联系我们,回复您的是编写这些代码的人。
