Ruby

これは、わたしもよく忘れるから備忘録かな。

ネタ元

↓はとても参考になるわ。ウチよりもね。

ファイルパスからディレクトリパスを抜き出す

File::dirnameを使うと、ファイルパスからディレクトリパスを抜き出すことができます。
File::dirname('/hoge/piyo')     #=> /hoge
File::dirname('/hoge/piyo/')    #=> /hoge

Windowsの「\」区切りにも対応しています。

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.

ワイルドカードの前に2文字以上あると無視されるようです。

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

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-02-26 (金) 12:08:06