[[Ruby]]
これは、わたしもよく忘れるから備忘録かな。
* ネタ元 [#x5dcff68]
↓はとても参考になるわ。ウチよりもね。
- http://www.namaraii.com/rubytips/?%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9#l16
* ファイルパスからディレクトリパスを抜き出す [#ga7ce8ef]
File::dirnameを使うと、ファイルパスからディレクトリパスを抜き出すことができます。
File::dirname('/hoge/piyo') #=> /hoge
File::dirname('/hoge/piyo/') #=> /hoge
** Windowsの「\」区切りにも対応しています。 [#a4329a50]
File::dirname('C:\\hoge\\piyo') #=> C:\hoge
* ファイルパスからファイル名を抜き出す [#v4f62a7e]
File::basenameを使うと、ファイルパスからファイル名を抜き出すことができます。
File::basename('/hoge/piyo') #=> piyo
** 指定した拡張子を無視することもできます。 [#sa4decb4]
File::basename('/hoge/piyo.c', '.c') #=> piyo
File::basename('/hoge/piyo.cpp', '.c') #=> piyo.cpp
** 拡張子にはワイルドカードも指定できます。 [#j42dd91f]
File::basename('/hoge/piyo.c', '.*') #=> piyo
File::basename('/hoge/piyo.cpp', '.*') #=> piyo
** ワイルドカードは末尾からの最短一致でチェックしているようです。 [#waa1ec70]
File::basename('/hoge/piyo.cpp', 'p*') #=> piyo.cp
File::basename('/hoge/piyo.cpp', 'c*') #=> piyo.
** ワイルドカードの前に2文字以上あると無視されるようです。 [#xc83e1ae]
File::basename('/hoge/piyo.cpp', '.c*') #=> piyo.cpp
* パス名とファイル名を一度に抜き出す [#h13d1946]
File::splitを使うと、ファイルパスからディレクトリパスとファイル名を一度に抜き出すことができます。
File::split('/hoge/piyo') #=> ["/hoge", "piyo"]
dir, file = File::split('/hoge/piyo')
p dir #=> "/hoge"
p file #=> "piyo"
* 拡張子を調べる [#de8651d8]
File::extnameを使うと、ファイルパスから拡張子を抜き出すことができます。
File::extname('/hoge/piyo.c') #=> .c
# ファイル名先頭の.は拡張子と見なされません。
File::extname('/hoge/.piyo') #=> ""
File::extname('/hoge/.piyo.c') #=> .c