首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查Ruby中的目录是否为空

检查Ruby中的目录是否为空
EN

Stack Overflow用户
提问于 2011-02-21 02:48:32
回答 6查看 21.1K关注 0票数 37

如何检查Ruby中的目录是否为空?有没有类似这样的东西:

代码语言:javascript
复制
Dir.exists?("directory")

(我知道该函数并不存在。)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-02-21 02:50:31

Ruby现在有了Dir.empty?,这使得这件事变得非常简单:

代码语言:javascript
复制
Dir.empty?('your_directory') # => (true|false)

在Rubies 2.4.0之前的版本中,您可以只获取条目列表,并亲自查看它是否为空(考虑到“.和"..")。参见the docs

代码语言:javascript
复制
(Dir.entries('your_directory') - %w{ . .. }).empty?

# or using glob, which doesn't match hidden files (like . and ..)
Dir['your_directory/*'].empty?

更新:上面的第一个方法过去使用正则表达式;现在它不再使用正则表达式(显然)。下面的注释主要适用于前一个(regex)版本。

票数 63
EN

Stack Overflow用户

发布于 2016-12-27 19:48:00

从Ruby2.4.0开始,就有了Dir.empty?

代码语言:javascript
复制
Dir.empty?('/') # => false
票数 11
EN

Stack Overflow用户

发布于 2011-02-21 02:56:09

您可以使用条目查看目录中的所有文件和文件夹:

代码语言:javascript
复制
Dir.entries('directory')
=> ['.', '..', 'file.rb', '.git']
Dir.entries('directory').size <= 2 # Check if empty with no files or folders.

您还可以仅使用glob搜索文件:

代码语言:javascript
复制
Dir.glob('directory/{*,.*}')
=> ['file.rb', '.git']
Dir.glob('directory/{*,.*}').empty? # Check if empty with no files.
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5059156

复制
相关文章

相似问题

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