[ruby-dev:39886] Re: stable find.rb

From: Takahiro Kambe <taca@...>
Date: 2009-12-16 00:33:18 UTC
List: ruby-dev #39886
おはようございます。

In message <49c17ca70912060647l2d6f2bd4s14f4fd7f17fc43b2@mail.gmail.com>
	on Sun, 6 Dec 2009 23:47:35 +0900,
	Tanaka Akira <akr@fsij.org> wrote:
> ディレクトリを再帰的にたどった結果を比較することがあったのですが、
> find.rb を使うと、yield されるファイル名の順序が readdir の挙動に依存して
> 不定なために使えなくて残念な思いをしました。
> 
> readdir が返す順に yield しなければならないという理由はないと思うので、
> ディレクトリ内のファイルを sort してやるというのはどうでしょう?
敢えて理屈を付けるとすれば、

1. そのままの状態(ls -f相当)が欲しい。
2. なるべく返す順にディレクトリ・ツリーをコピーしたい。
3. 改めてlocaleに依存した方法でソートしたいので無駄になる。
4. 非常に多量な数のファイルがあった場合に、不要なソートの処理で性能の
   低下が起きそう。

と、いったあたりでしょうか。(それぞれ、完全に独立した内容ではありま
せんが。)

ソートするかどうか指定する、何らかの方法が用意されていた方が良さそうに
思えます。

-- 
神戸 隆博(かんべ たかひろ)		at 仕事場 

In This Thread