我目前正在研究一個紅寶石項目,並且在我應該如何進行時遇到了一堵牆。在項目中,我使用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