Rubyでextnameメソッドを使う方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyでextnameメソッドを使う方法について現役エンジニアが解説しています。extnameメソッドとはFileクラスのメソッドで、ファイルの拡張子のみを文字列として返し、拡張子を取得してみましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Rubyでextnameメソッドを使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyでextnameメソッドを使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

extnameメソッドとは

extnameメソッドはFileクラスのメソッドで、ファイルを拡張子のみを文字列として返します。

類似のメソッドでファイル名の取得はbasenameメソッド、/の後ろの文字列を返すdirnameメソッドがあります。

この際に、一緒に覚えてしまいましょう。

 

extnameメソッドを使う方法

以下の形式で使用します。

File.extname("ファイルパス")

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

# extname はファイルの拡張子のみを取りだすことができます。
# 拡張子がない場合はカラ文字列が返ります。
p File.extname("./hoge/huga/file.txt") #=> ".txt"
p File.extname("./hoge/huga/file") #=> ""
p File.extname("./hoge/huga/") #=> ""
# いい機会ですので basename もみてみましょう。
# basename は拡張子を含めたファイル名のみをとりだすことができます。
# 末尾の文字列を指定すると拡張子を取り除いたファイル名のみをとりだすことができます。
p File.basename("./hoge/huga/file.txt") #=> "file.txt"
p File.basename("./hoge/huga/file.txt", ".txt") #=> "file"
p File.basename("./hoge/huga/file.txt", ".*") #=> "file"
# いい機会ですので dirname もみてみましょう。
# ディレクトリパスのみを返します。
# 最後のスラッシュ( / )より手前の文字列のみが返ってきます。
# ファイル名が取り除かれていることを意識してください。
# ファイル名のみを引数とした場合はカレントディレクトリ( . )が返ります。
p File.dirname("./hoge/huga/file.txt") #=> "./hoge/huga"
p File.dirname("file.txt") #=> "."
# split メソッドを使うとディレクトリパスとファイル名を配列に分割することができます。
p File.split("./hoge/huga/file.txt") #=> ["./hoge/huga", "file.txt"]
__END__

 

実行結果

#=>
".txt"
""
""
"file.txt"
"file"
"file"
"./hoge/huga"
"."
["./hoge/huga", "file.txt"]

 

まとめ

File.extnameメソッドを使うことで簡単にファイルの拡張子だけを取りだすことが可能です。

 

執筆してくれたメンター

メンター古川さん

Rubyが得意で、Webエンジニアとして最上流から最下流までセルフスターターとして活躍してきました。

近年セミリタイアし、フリーランスとして適度に働きながら穏やかな生活を楽しでいます。

 

大石ゆかり

Rubyでextnameメソッドを使う方法分かりやすくて良かったです!

田島悠介

ゆかりちゃん、これからも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも最短4週間で、Ruby on Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、参加してみてください。