これは、わたしもよく忘れるから備忘録かな。
↓はとても参考になるわ。ウチよりもね。
File::dirnameを使うと、ファイルパスからディレクトリパスを抜き出すことができます。
File::dirname('/hoge/piyo') #=> /hoge
File::dirname('/hoge/piyo/') #=> /hoge
File::dirname('C:\\hoge\\piyo') #=> C:\hoge
File::basenameを使うと、ファイルパスからファイル名を抜き出すことができます。
File::basename('/hoge/piyo') #=> piyo
File::basename('/hoge/piyo.c', '.c') #=> piyo File::basename('/hoge/piyo.cpp', '.c') #=> piyo.cpp
File::basename('/hoge/piyo.c', '.*') #=> piyo File::basename('/hoge/piyo.cpp', '.*') #=> piyo
File::basename('/hoge/piyo.cpp', 'p*') #=> piyo.cp File::basename('/hoge/piyo.cpp', 'c*') #=> piyo.
File::basename('/hoge/piyo.cpp', '.c*') #=> piyo.cpp
File::splitを使うと、ファイルパスからディレクトリパスとファイル名を一度に抜き出すことができます。
File::split('/hoge/piyo') #=> ["/hoge", "piyo"]
dir, file = File::split('/hoge/piyo') p dir #=> "/hoge" p file #=> "piyo"
File::extnameを使うと、ファイルパスから拡張子を抜き出すことができます。
File::extname('/hoge/piyo.c') #=> .c
# ファイル名先頭の.は拡張子と見なされません。
File::extname('/hoge/.piyo') #=> "" File::extname('/hoge/.piyo.c') #=> .c