まつもと ゆきひろです
In message "[ruby-list:8002] Dir.open order"
on 98/05/19, Kikutani Makoto <kikutani / debian.or.jp> writes:
|きくたに@マサチューセッツです。
|
|Maildirのフォルダを読みたいので、Dir.openを使うのですが、
|これで読む順番というのはどう決まっているのでしょうか?
|きっとUnix系だとreaddir(3)の順ということになるのでしょうが、
|他のプラットフォームでは?
他のプラットフォームでもreaddir(3)の順です.もっともこの
readdirの仕様が「不定」ですから,当てにならん,分からんとい
うことは変りませんが.
|あるディレクトリの中身をを日付け順とかサイズ順とかに読むのを簡単にやる
|方法はあるのでしょうか?
簡単な方法は無いです,多分.readdir(3)して,stat(2)して,そ
の情報を元にsortするしかないでしょうね.rubyなら道具は揃って
ますから,Cで書くよりはずっと楽でしょうけど(特にsortの辺り).
ary = nil # need to declare
Dir.open(".") do |d|
ary = d.collect{|f| [f, File.size(f)]}.sort{|a,b| a[1] <=> b[1]}
end
こんな感じ.ろくにテストしてません.
まつもと ゆきひろ /:|)