金子邦彦研究室プログラミングRuby プログラミングRuby でファイル一覧の取得

Ruby でファイル一覧の取得

Ruby を使って,ファイル一覧の取得を行う.

プログラム例

Glob を用いたファイル名のパターンマッチ

#! ruby -Ks
# coding: windows-31j

require 'pp'

DIRROOT="C:\\Windows\\System32"
PATTERN="*.dll"

# カレントディレクトリの変更
Dir.chdir( DIRROOT )
# ファイル名の取得.ブロック構文で,とりあえずファイル名の表示を行うことにする
Dir.glob( PATTERN ) do |f|
    pp f
end

実行結果の例(一部分)

[image]

Find を用いた再帰的ファイル処理

ディレクトリの奥深くたどる処理は Find を使って簡単に書くことができる.

#! ruby -Ks
# coding: windows-31j

require 'pp'
require 'find'

# 念のためカレントディレクトリの変更
DIRROOT=ARGV[0]
Dir.chdir(DIRROOT)
Find.find(DIRROOT) do |f|
  if File.directory?(f)
    print "dir: "
    pp  f
  else
    print "file: "
    pp  f
    print  File.basename(f) + ", "
    print  File.dirname(f) + ", "
    print  File.extname(f) + "\n"
  end
end

実行結果の例(一部分)

[image]

[image]