如何在Ruby中打开目录中的目录

如何在Ruby中打开目录中的目录,ruby,Ruby,我想读取一个目录中的文件,但该目录有另一个目录,其中包含我也需要读取的信息。有人知道我该怎么做吗?这是我的目录树 Root |__code |__ file.rb (where I am working from) |__Directory |__file 1 |__file 2 |__Directory 2 |__file 3 |__file 4 我正在使用Fi

我想读取一个目录中的文件,但该目录有另一个目录,其中包含我也需要读取的信息。有人知道我该怎么做吗?这是我的目录树

Root
   |__code
        |__ file.rb (where I am working from)
   |__Directory
      |__file 1
      |__file 2
      |__Directory 2
                 |__file 3
                 |__file 4

我正在使用
File.open(“file1”,“r”)
打开文件

Dir.glob是您所需要的。发件人:

展开模式,它是模式字符串或模式数组 字符串,并返回包含匹配文件名的数组。如果 块,为每个匹配的文件名调用该块一次, 将文件名作为参数传递给块


我假设您正在
目录中运行脚本。你有没有试过,例如,
File.open(“Directory2/file3”,“r”)
?@潜伏者没有,我在另一个名为code的目录下工作,我已经编辑了目录树。问题文本没有明确说明您是否要读取目录树中的所有文件,或者某些预定义文件,如
Root/directory/Directory2/file3
@LindaKadz,如果是这种情况,那么
file.open(“file1”,“r”)
也不一定有效。您需要使用更明确的路径。
文件.join
方法中的第一个参数是什么?我弄明白了第一个参数是什么,我将路径放在
目录
中,它为我列出了目录中的所有文件(即
文件1和文件2
),但没有
目录2
。事实上,这是我的输出“#[”./Directory 1/file1.rb“,“./Directory 1/file2.rb”,“./Directory 1/file3.rb”,“./Directory 1/file4.rb”]`@LindaKadz我刚刚更新了答案,以反映对问题的更改。请添加您一直在尝试的代码。这非常有效,但随后我将其重构为
Dir.glob(“../Directory 1/***.rb”)
非常感谢!
files = File.join("Root", "Directory", "**", "*")
Dir.glob(files)
# => ["Root/Directory/file 1", "Root/Directory/file 2", "Root/Directory 2/file 3", "Root/Directory 2/file 4"]