[[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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS