我目前正在研究一个红宝石项目,并且在我应该如何进行时遇到了一堵墙。在项目中,我使用Dir.glob来搜索目录及其所有子目录中的某些文件类型,并将它们放入数组中。我正在使用的文件类型都具有相同的文件名,并通过扩展名进行区分。例如,高级数组在Ruby中排序
txt_files = Dir.glob("**/*.txt")
doc_files = Dir.glob("**/*.doc")
rtf_files = Dir.glob("**/*.rtf")
将返回类似的东西,
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是否是正确的方法(所有具有相同文件名的文件都在同一个文件夹中)。任何帮助将不胜感激!
对不起,也许我没有使用正确的术语来做我想做的事情(还是新的Ruby)。我想要做的是采取我拥有的三个glob数组,并制作另外三个数组。新数组将包含具有相同名称但扩展名不同的文件名。我没有使用全局搜索(Dir.glob('**/*'))的原因是我不想将其他文件与其他文件混合在一起进行分类。 – 2010-03-31 20:15:48
所以你可以1)执行与上面'by_name'相同的逻辑,在你已经拥有的三个数组的每一个上,或者2)而不是通过'Dir.glob('**/*')获取所有文件。 ',只需要带有你需要的扩展名:'Dir.glob(“**/*。{txt,doc,rtf}”)',就像Glenn所说的那样。 – 2010-03-31 20:44:21