- 追加された行はこの色です。
- 削除された行はこの色です。
*目次 [#yf689441]
#contents
*ファイル一覧取得 [#ra838a88]
**globを使う [#l759e827]
/tmpに含まれるjpgファイル一覧を配列として取得する(フルパス)。
Dir::glob("/tmp/*.jpg")
globの引数はワイルドカードを指定できる(正規表現ではない)。
**Dir::globを使う [#l759e827]
*** /tmpに含まれるjpgファイル全てをフルパスの配列として取得する。 [#u976fc5f]
p Dir::glob("/tmp/*.jpg")
=> ["d:/temp/empty.jpg", "d:/temp/ipad.jpg"]
*** globの引数 [#o29f25e8]
ワイルドカードを指定できる(正規表現ではない)。
:*|空文字列を含む任意の文字列と一致。
:?|任意の一文字と一致。
:[ ]|括弧内のいずれかの文字と一致。
:{ }|コンマで区切られた文字列の組合せに展開。
:**/|ディレクトリを再帰的にたどってマッチを行う。
**Dir::entriesを使う [#x97c13e8]
*** /tmpに含まれるファイル全てを配列として取得する。 [#q384f8b9]
p Dir::entries("d:/temp")
=> [".", "..", "empty.jpg", "ipad.jpg"]
戻り値はファイル名のみ。
*** /tmpに含まれるファイル全てをフルパスの配列として取得する。 [#n3c9237c]
dir = "d:/temp/"
p Dir.entries(dir).collect{|f| dir + f}
=> ["d:/temp/.", "d:/temp/..", "d:/temp/empty.jpg", "d:/temp/ipad.jpg"]
*** /tmpに含まれるjpgファイル全てをフルパスの配列として取得する [#yf50238d]
dir = "d:/temp/"
p Dir.entries(dir).grep(/\.jpg$/) {|f| dir + f}
=> ["d:/temp/empty.jpg", "d:/temp/ipad.jpg"]
*** /tmpに含まれるjpg,pngファイル全てをフルパスの配列として取得する [#x54e91b9]
grepに渡す正規表現を工夫すればよい。
dir = "d:/temp/"
p Dir.entries(dir).grep(/\.(jpg|png)$/) {|f| dir + f}
=> ["d:/temp/abc.png", "d:/temp/empty.jpg", "d:/temp/ipad.jpg"]