中給出的目錄獲取文件信息一直在爲學校開發一個程序,並且需要幫助獲取一些片段。從命令行參數
目標是接受任何目錄的命令行參數,並顯示有關每個具有擴展名的文件的一些信息。我主要工作,但需要一些額外的幫助。
的文件只需要一對夫婦更多的事情:
- 集團的擴展和計數。
- 接受多個參數,並且如果沒有給定,則默認爲當前目錄。
- 計算每個的數量/顯示總大小/並在顯示錯誤時給出顯示錯誤,如果該目錄不存在或者我無法訪問它。
目前,它確實從目錄中獲取文件,顯示擴展名並放出文件的大小。下面是我迄今爲止編寫的代碼:
directory=ARGV[0]
searchstring= Regexp.new "(\\.[^.]+)$"
if File.exists? File.expand_path(directory)
Dir["#{File.expand_path(directory)}/*"].each.map { |f| File.basename(f)
if File.basename(f)=~searchstring
puts "Extension: #{File.extname(f)} Count: Size: #{File.stat(f).size}"
end
}
else
puts "This directory does not exist"
end
輸出看起來像這樣至今:
Extension: .rb Count: Size: 104
Extension: .rb Count: Size: 381
Extension: .xml Count: Size: 84252
Extension: .rb Count: Size: 107
Extension: .rb Count: Size: 377
Extension: .sql Count: Size: 1763
Extension: .rb Count: Size: 123
Extension: .rb Count: Size: 189
Extension: .db Count: Size: 10240
Extension: .rb Count: Size: 791
編輯:我如果目錄存在,它檢查。我將在上面粘貼我的新代碼。儘管如此,仍然需要其他幫助。特別是將擴展存儲爲一個組(hash?)。
我已經嘗試了多次迭代的ARGV.each做,但我無法讓它循環通過多個命令行參數,不管我做什麼嘗試。 我還沒有看到給定參數中的所有子目錄。 –
我已經回滾編輯了一下,儘量避免用答案更新你的問題,而是投票有用的答案,並接受最有幫助的答案。通過這種方式,未來的讀者可以看到您遇到了哪些問題以及彼得如何能夠幫助您,而不是僅僅看到彼得的答案與問題中發佈的代碼完全相同。如果您還有其他問題,請考慮發佈一個新問題並鏈接回這個問題,如果需要額外的上下文 –
感謝Simple Lime。我以爲我正在通過更新來幫忙。我將爲未來的問題記住這一點。我可能會在明天發佈一個更新的問題,然後回到這個問題。 –