絶対パス - ruby ディレクトリ 移動




`Dir.entries`のソート順 (3)

Dir.entriesが結果を返す固定/既定のソート順はありますか? 私は最初の2つのエントリが"."".."


@maericsの答えを拡大すると、以下は無視され. && .. . && .. 、regexベースのフィルタを使用し、必要に応じて最新のファイルを選択します。

    Dir.chdir(in_dir)
    target_file   =  Dir.entries(in_dir).select(|x| 
                     x != '.' && 
                     x != '..' && 
                     x =~ /\somefile.txt\z/).sort_by{|f|File.mtime(f)}.last(1)
   puts "here i am #{target_file}"

Rubyの言語文書によると、 Dir.entries()はリストされたファイルの特定の順序を保証していないので、何らかの順序が必要な場合は、明示的に自分自身で行うのが最善です。

たとえば、ファイルの変更時刻(古いものから最新のもの)でソートする必要がある場合は、次の操作を実行できます。

Dir.entries('.').sort_by { |x| File.mtime(x) }

私はデフォルトのソート順はないと思うが、あなたはDir.entries('some_path_to_dir').sort使うことができる。





ruby