グロブ・Dir.globを使ってディレクトリ検索

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

ディレクトリをオープンしてファイル名を読むと、前のページでスクリプトを書いてみました。
今度は、シェルのようなグロブを用いて、ディレクトリ・ファイルを検索するように、指定ディレクトリ以下のディレクトリを再帰オープンするという同様の目的のスクリプトを書きます。

スポンサーリンク

# 指定ディレクトリ以下のディレクトリを再帰オープン
def diropener(path)
    if FileTest.directory?(path)
        # **は再帰的検索。\0は複数パターンの区切り。.*は隠しファイル取得
        Dir.glob("#{path}/**/*\0#{path}/**/.*").each{|name|
            p "#{name}"
        }
    end
end
 
dirname = "child"
diropener(dirname)

実行結果。

"child/backup"
"child/backup/backup_text2.dat"
"child/backup/backup_text4.dat"
"child/backup/backup_text5.dat"
"child/text2.dat"
"child/text4.dat"
"child/text5.dat"
"child/."
"child/.."
"child/backup/."
"child/backup/.."
スポンサーリンク
 
スポンサーリンク