You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Ruby查找电脑所有.conf文件 现有代码无输出如何解决

问题原因及解决方法

你写的Dir.glob("**/*.conf")默认是从当前工作目录开始递归遍历,不是从整个电脑的根目录开始扫描,这是没有输出最常见的原因:你运行脚本的当前目录下没有任何后缀为.conf的文件,也没有子目录存放这类文件。

其他可能的原因

  • 权限不足:如果你修改了遍历路径到系统级目录(比如Linux的/etc、Windows的C盘系统目录),Ruby进程没有读取对应目录的权限时,会静默跳过这些目录不会抛出错误,自然也不会输出匹配到的文件
  • 大小写敏感问题:部分操作系统(比如macOS默认关闭大小写敏感、Windows全系统不区分大小写)如果你的文件后缀是.CONF大写形式,默认不会被匹配到,需要加匹配参数忽略大小写
  • 隐藏目录/文件过滤:Dir.glob默认不会匹配路径中以.开头的隐藏目录和隐藏文件,如果你要找的.conf文件存放在隐藏目录下,也会被漏掉

修复后的代码示例

如果要遍历整个系统根目录的所有.conf文件,对应不同操作系统修改根路径即可:

# macOS / Linux 从根目录开始遍历,添加参数支持匹配隐藏文件、忽略大小写
Dir.glob("/**/*.conf", File::FNM_DOTMATCH | File::FNM_CASEFOLD) do |file|
  puts file
rescue Errno::EACCES
  # 跳过无权限访问的目录,避免崩溃
  next
end
# Windows 从C盘根目录开始遍历
Dir.glob("C:/**/*.conf", File::FNM_DOTMATCH | File::FNM_CASEFOLD) do |file|
  puts file
rescue Errno::EACCES
  next
end

如果只是想扫描当前用户目录下的.conf文件,把路径替换为~/**/*.conf即可,扫描速度会比遍历整个系统盘快很多。

内容的提问来源于stack exchange,提问作者Nikita Fernando

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:09:02