我目前正在研究一个红宝石项目,我就如何继续下去了.在项目中,我使用Dir.glob搜索目录及其所有子目录中的某些文件类型并将它们放入数组中.我正在使用的文件类型都具有相同的文件名,并通过扩展名进行区分.例如,
txt_files = Dir.glob("**/*.txt")
doc_files = Dir.glob("**/*.doc")
rtf_files = Dir.glob("**/*.rtf")
Run Code Online (Sandbox Code Playgroud)
会返回类似的东西,
FILECON.txt ASSORTED.txt FIRST.txt
FILECON.doc ASSORTED.doc FIRST.doc
FILECON.rtf ASSORTED.rtf FIRST.rtf
所以,我的问题是如何有效地分解这些数组(处理数千个文件)并将具有相同文件名的所有文件放入数组中.新阵列看起来像,
FILECON.txt FILECON.doc FILECON.rtf
ASSORTED.txt ASSORTED.doc ASSORTED.rtf
等等
我甚至不确定glob是否是正确的方法(所有具有相同文件名的文件都在相同的文件夹中).任何帮助将不胜感激!
将所有文件放入一个数组中 Dir.glob("**/*.{txt,doc,rtf}")
不要忘记所有文件名也都有目录,所以如果你想按基名排序,那么
files = Dir.glob("**/*.{txt,doc,rtf}").sort_by {|f| File.basename f}
Run Code Online (Sandbox Code Playgroud)