Ruby

Tag: Ruby/ファイル

目次

関連ページ

参考情報

ファイル読み込み

全てを文字列として読み込む

一行ずつの配列として読み込む

ファイル書き出し

BOM付きUTF-8ファイルを書き出す

ファイル検索

Dir::globを使う

ディレクトリに含まれるjpgファイル全てをフルパスの配列として取得する

ディレクトリに含まれるhtm/htmlファイル全てをフルパスの配列として取得する

サブディレクトリ以下を含むディレクトリに含まれるjpgファイル全てをフルパスの配列として取得する

globの引数

ワイルドカードを指定できる(正規表現ではない)。

*
空文字列を含む任意の文字列と一致。
?
任意の一文字と一致。
[ ]
括弧内のいずれかの文字と一致。
{ }
コンマで区切られた文字列の組合せに展開。
**/
ディレクトリを再帰的にたどってマッチを行う。

Dir::entriesを使う

/tmpに含まれるファイル全てを配列として取得する。

p Dir::entries("d:/temp")
=> [".", "..", "empty.jpg", "ipad.jpg"]

戻り値はファイル名のみ。

/tmpに含まれるファイル全てをフルパスの配列として取得する。

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ファイル全てをフルパスの配列として取得する

dir = "d:/temp/"
p Dir.entries(dir).grep(/\.jpg$/) {|f| dir + f}
=> ["d:/temp/empty.jpg", "d:/temp/ipad.jpg"]

/tmpに含まれるjpg,pngファイル全てをフルパスの配列として取得する

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"]

ファイルを削除する

FileUtils.rmを使う

ファイルを一つだけ削除

FileUtils.rm("d:/temp/foo.txt")

ワイルドカードにマッチするファイルを削除

FileUtils.rm(Dir.glob("d:/temp/*.jpg"))

パスの操作

File.expand_pathの第2引数について

Pathname

Zipファイルの取り扱い

Rubyzipを使用する

.zipファイルを圧縮解凍するためのライブラリ。

Rubyzipで解凍する

トラブルシューティング

ファイルに出力すると^Mが表示される。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS