如何在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"]