如何检查Ruby中是否存在文件夹列表?

时间:2012-09-05 20:41:49

标签: ruby

我正在尝试在我的C:/驱动器上找到匹配的文件夹列表,然后执行一些代码,但它没有按预期工作。

我可以使用单个文件夹做得很好,但不知道如何使用我想要查找的文件夹列表。

我的代码

Dir.glob("C:/*")

directory_list = Array.new

directory_list << "FolderA"
directory_list << "FolderB"

    if Dir.exists?(directory_list)

        puts "Does exist"

    else

        puts "Does not Exist"
    end

以下解决方案为我提供了概念验证

 dirs = ["FolderA", "FolderB"] 
 reg = Regexp.union dirs exists, 
 rest = Dir.glob("{B,C,D}:/*").partition{ |path| path =~ reg } 
 puts exists

感谢凯尔在聊天室。

2 个答案:

答案 0 :(得分:1)

c_drive = Dir.glob("**/")
%w(FolderA, FolderB).each do |dir|
  if c_drive.include?(dir)
    puts "#{dir} exists"
  else
    puts "#{dir} does not exist"
  end
end

答案 1 :(得分:1)

在Windows上,目录前面有驱动器,因此您需要:

"C:/FolderB" =~ /FolderB|FolderA/

代码:

dirs = ["FolderA", "Folderb"] 
reg = Regexp.union dirs 
exists, rest = Dir.glob("C:/*").partition{ |path| path =~ reg }
# now you have two arrays, one of directories that exist and the rest