Answers:
如果您要查找的文件是目录而不是文件,这很重要,则可以使用File.directory?
或Dir.exist?
。仅当文件存在且为目录时,此方法才返回true。
顺便说一句,编写该方法的一种更惯用的方式是利用Ruby自动返回该方法中最后一个表达式的结果的事实。因此,您可以这样编写:
def directory_exists?(directory)
File.directory?(directory)
end
注意,在当前情况下不需要使用方法。
Dir.exists?
比这更清洁File.directory?
?
Dir.exists?
已弃用,使用Dir.exist
Dir.exist?
undefined method `exists?' for Dir:Class (NoMethodError)
。另外,现在不建议使用复数形式,.exist?
而应使用。
您可以使用Kernel#test
:
test ?d, 'some directory'
它从https://ss64.com/bash/test.html获取它的来源,
您会注意到bash test
具有此标志-d
来测试目录是否存在
-d file True if file is a Directory. [[ -d demofile ]]