首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取目录中的文件夹列表

获取目录中的文件夹列表
EN

Stack Overflow用户
提问于 2009-12-14 13:26:06
回答 11查看 65.7K关注 0票数 93

如何使用ruby获取某个目录中存在的文件夹列表?

Dir.entries()看起来很接近,但我不知道如何仅限于文件夹。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-12-14 14:02:02

Jordan很接近,但是Dir.entries没有返回File.directory?期望的完整路径。试试这个:

 Dir.entries('/your_dir').select {|entry| File.directory? File.join('/your_dir',entry) and !(entry =='.' || entry == '..') }
票数 73
EN

Stack Overflow用户

发布于 2011-05-31 04:20:49

我发现这更有用,也更容易使用:

Dir.chdir('/destination_directory')
Dir.glob('*').select {|f| File.directory? f}

它获取当前目录中的所有文件夹,不包括...

要递归文件夹,只需使用**代替*即可。

还可以将Dir.glob行作为块传递给Dir.chdir

Dir.chdir('/destination directory') do
  Dir.glob('*').select { |f| File.directory? f }
end
票数 112
EN

Stack Overflow用户

发布于 2009-12-14 17:27:21

在我看来,Pathname比普通字符串更适合于文件名。

require "pathname"
Pathname.new(directory_name).children.select { |c| c.directory? }

这将为您提供该目录中所有目录作为路径名对象的数组。

如果您想要字符串

Pathname.new(directory_name).children.select { |c| c.directory? }.collect { |p| p.to_s }

如果directory_name是绝对的,那么这些字符串也是绝对的。

票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1899072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档