在Ruby中,你可以使用Dir.glob
或Dir[]
方法來模擬C語言中的readdir
函數,以讀取目錄的內容。這兩個方法都接受一個目錄路徑作為參數,并返回該目錄下所有文件和子目錄的數組。
下面是一個簡單的例子,展示了如何在Ruby中使用Dir.glob
來讀取目錄內容:
# 指定要讀取的目錄路徑
dir_path = '/path/to/directory'
# 使用 Dir.glob 讀取目錄內容
entries = Dir.glob(File.join(dir_path, '*'))
# 輸出目錄內容
entries.each do |entry|
puts entry
end
或者,你也可以使用Dir[]
方法,它的語法更簡潔:
# 指定要讀取的目錄路徑
dir_path = '/path/to/directory'
# 使用 Dir[] 讀取目錄內容
entries = Dir[dir_path + '/*']
# 輸出目錄內容
entries.each do |entry|
puts entry
end
這兩種方法都會返回一個包含目錄中所有文件和子目錄名稱的數組。如果你想要獲取更多關于每個條目的信息,比如文件類型、大小等,你可以使用File
類的方法,例如File.stat
。
下面是一個更復雜的例子,它不僅列出了目錄中的所有條目,還顯示了每個條目的詳細信息:
# 指定要讀取的目錄路徑
dir_path = '/path/to/directory'
# 使用 Dir.glob 讀取目錄內容
entries = Dir.glob(File.join(dir_path, '*'))
# 遍歷目錄內容并輸出詳細信息
entries.each do |entry|
stat_info = File.stat(entry)
puts "Name: #{entry}"
puts "Size: #{stat_info.size} bytes"
puts "Last modified: #{stat_info.mtime}"
puts "Is directory: #{stat_info.directory?}"
puts "-----------------------------"
end
請注意,上述代碼示例中的路徑/path/to/directory
需要替換為你想要讀取的實際目錄路徑。此外,這些方法默認會包括.
(當前目錄)和..
(父目錄)在內,如果你不希望包含這些特殊條目,可以在返回的數組中過濾掉它們。