こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 Rubyでファイル名を取得できるFile.basenameメソッドについて
- File.basenameメソッドとは
 - File.basenameメソッドを使ったサンプルプログラム
 
と、この記事で丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
| OS | Windows10 | 
|---|---|
| Rubyのバージョン | 2.6.6 | 
Rubyのインストールは、下の記事をご参考ください。
File.basenameメソッドとは
File.basenameメソッドとは、引数に与えられた文字列のパスからファイル名の部分を取得して返すメソッドです。
File.basenameメソッドは使い方が
- パターン1:第一引数のみの場合
 - パターン2:第二引数も指定した場合
 
の合計2パターンあります。
それぞれ解説します。
パターン1:第一引数のみの場合
第一引数のみの場合、第一引数のパスからファイル名と拡張子の文字列を返します。
正確には、最後の「/」から続く文字列を返します。
使い方サンプルは以下です。
| 
					 1 2  | 
						sample = "aaa/bbb/ccc.txt" result = File.basename(sample)  | 
					
実行後はresultには
| 
					 1  | 
						ccc.txt  | 
					
という文字列が返されます。
もし与えた引数に「/」がなければ、文字列をそのまま返します。
パターン2:第二引数も指定した場合
第二引数も指定した場合、第一引数のパスからファイル名を抽出します。
抽出した文字列の末尾が第二引数の文字列と一致している場合、一致した文字列を削除した文字列を返します。
第二引数を指定することで、ファイル名のみの文字列を取得することができます。
使い方サンプルは以下です。
| 
					 1 2  | 
						sample = "aaa/bbb/ccc.txt" result = File.basename(sample, ".txt")  | 
					
実行後はresultには
| 
					 1  | 
						ccc  | 
					
という文字列が返されます。
どんな拡張子でもファイル名のみを取得できるようにするには第二引数に
| 
					 1  | 
						".*"  | 
					
を指定すればOKです。
では、次の章で実際に使ってみます。
File.basenameメソッドを解説するプログラムの概要
File.basenameメソッドを解説するプログラムでは
- 第一引数のみの場合
 - 第二引数も指定した場合
 
の2パターンでそれぞれ
- 「/」があるパスを指定
 - 「/」がないパスを指定
 
の2種類の引数を与えて実行して取得した値を確認します。
Rubyサンプルプログラム
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22  | 
						puts "■File.basenameメソッドサンプル" puts "①第一引数のみの場合" puts "・「/」があるパスを指定" filename1 = "hogehoge/test/sample.rb" basename1 = File.basename(filename1) puts "#{filename1}からファイル名と拡張子を抽出:#{basename1}" puts "・「/」がないパスを指定" filename2 = "test.rb" basename2 = File.basename(filename2) puts "#{filename2}からファイル名と拡張子を抽出:#{basename2}" puts puts "②第二引数も指定した場合" puts "・「/」があるパスを指定" filename3 = "fuga/example.rb" basename3 = File.basename(filename3, ".rb") puts "#{filename3}からファイル名のみを抽出:#{basename3}" puts "・「/」がないパスを指定" filename4 = "case.zip" basename4 = File.basename(filename4, ".*") puts "#{filename4}からファイル名のみを抽出:#{basename4}"  | 
					
実行結果
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。

| 
					 1 2 3 4 5 6 7 8 9 10 11 12  | 
						■File.basenameメソッドサンプル ①第一引数のみの場合 ・「/」があるパスを指定 hogehoge/test/sample.rbからファイル名と拡張子を抽出:sample.rb ・「/」がないパスを指定 test.rbからファイル名と拡張子を抽出:test.rb ②第二引数も指定した場合 ・「/」があるパスを指定 fuga/example.rbからファイル名のみを抽出:example ・「/」がないパスを指定 case.zipからファイル名のみを抽出:case  | 
					
ファイル名が取得できていることが確認できました。
まとめ:File.basenameメソッドを使ってみよう!
以上がFile.basenameメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
  
  
  
  
コメント