menu
書いてる野郎
orebike@gmail.com
ファイル操作に関してのまとめ。1.8.6ぐらいの時に書いたものもあるのでもしかしたら1.9系だと違う挙動かも
ファイルhogeが存在すればtrue。FileTestクラスにはファイルの性質を調べる便利なメソッドが何個もある。
FileTest.exist?("hoge")
ファイルの存在を確認同様にFileTest.exist?
を使う
Fileクラスのbasenameメソッドを使う。つまりパス記述に特化した文字列操作
Windows式 ¥を重ねてるのはエスケープのため
p File::basename("C:\\aaa\\hoge.gif") #=> hoge.gif
Unix式
p File::basename("/aaa/hoge.gif") #=> hoge.gif
URL式
p File::basename("http://aaa.co.jp/hoge.gif") #=> hoge.gif
Ruby 2.0.0 で動作確認OK
s = File::stat("/a/b/c/hogehoge.txt") p s.mtime
method | class | memo |
---|---|---|
mtime | Time | 最終更新時刻 |
Ruby 2.0.0 で動作確認OK
Dir.glob("D:/hoge/piyo/*").each do |f| p f end
得られるf
はフルパス表記のStringオブジェクト。
カレントを表す.
(ドット)とか親ディレクトリを表す..
(ドットドット)は含まれない
Dir.glob("./**/*").each do |f| next unless File.file?(f) puts f end
こうすると
FileUtils.copy("C:/hoge/piyo.txt", "C:/fuga")
C:/fuga/piyo.txt
が出来上がる
ファイルパスを rename することでファイルの移動となる。
File.rename("/hoge/from.txt", "/piyo/to.txt")
File::open("hoge.txt") do |f| f.each do |a| p a end end
2012-04-19 新規