RubyのDir.globメソッドでディレクトリの情報を取り出すとき、出力順序が定まっておらず困ることがあります。
そこで、こんな風にしてみました。
f = Dir.glob("dirname/*").sort do |a, b| sa = File.stat(a) sb = File.stat(b) if sa.file? and sb.directory? # ファイルとディレクトリのときは、ファイルを先に -1 elsif sa.directory? and sb.file? # ディレクトリとファイルのときは、ディレクトリを後に 1 else # それ以外(ファイルとファイル、ディレクトリとディレクトリ)のときは、文字列でソート a <=> b end end