Ruby Tips!

RubyのTipsを紹介します

ファイルの情報を取得する

Rubyで容量やパーミッションなどファイルの情報を取得するにはFile.statメソッドを使用する。File.statメソッドはファイルの情報を格納した、File::Statオブジェクトを返す。

stat = File.stat('/usr/bin/ruby')
puts stat.size # 容量
puts "0%o" % stat.mode # パーミッション

File::Statの属性メソッドは以下のとおり。

属性メソッド 取得できる情報
dev デバイス番号(ファイルシステム)
dev_major dev の major 番号部
dev_minor dev の minor 番号部
ino i-node 番号
mode ファイルモード
nlink ハードリンクの数
uid オーナーのユーザID
gid オーナーのグループID
rdev デバイスタイプ(スペシャルファイルのみ)
rdev_major rdev の major 番号部
rdev_minor rdev の minor 番号部
size ファイルサイズ(バイト単位)
blksize 望ましいI/Oのブロックサイズ
blocks 割り当てられているブロック数
atime 最終アクセス時刻
mtime 最終更新時刻
ctime 最終状態変更時刻

またFile::Statには、Fileと同様、ファイルの属性を検査するメソッドが用意されている。

stat = File.stat('/usr/bin/ruby')
p stat.file?
p stat.directory?
p stat.readable?
p stat.writable?
p stat.executable?

File.statはファイルがシンボリックリンクだった場合、リンク先をたどってファイルの情報を取得する。シンボリックリンク自体の情報を取得したい場合は、代わりにFile.lstatを利用すれば良い。