我試圖用每個中包含的文件構建一個文件夾數組。所以,如果你的目錄結構:在ruby中生成散列數組的快速方法?
DirA
|- FileA
\- FileB
DirB
\- FileC
而且我給出這個數組:
files = ["DirA/FileA", "DirA/FileB", "DirB/FileC"]
我試圖建立這樣
{DirA => [FileA, FileB], DirB => [FileC]}
散列現在我m以我認爲是非Rubyish的方式進行操作(假定String具有一個定義獲取父目錄的方法):
h = {}
files.each do |f|
parent = f.getParentDir
if not h[parent] then h[parent] = [] end
h[parent].push f
end
有更優雅的方式嗎?
你只關心直接包含在目錄中的文件,而不是嵌套的文件/目錄? – nneonneo
我使用提供給我的文件列表,我有興趣通過父目錄引用它們,以便我可以檢查它們是否都存在。 –
如果不是h [parent],那麼h [parent] = [] end'可以替換爲 'h [parent] = []除非h [parent]'或者even rubier'h [parent] || = [ ]'。 –