こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、12年目エンジニアです。
この記事では、 Rubyのファイルが存在するかどうかを確認できるFile.exist?メソッドについて
- File.exist?メソッドとは
- File.exist?メソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
この記事ではRubyプログラムは
C:\rubystudy
に作成しています。
File.exist?メソッドとは
File.exist?メソッドとは、引数に指定されたパスのファイルまたはディレクトリが存在したらtrue、なければfalseを返すメソッドです。
注意点としまして、ディレクトリとファイルの区別はできない点です。
確認したいファイルのパスは、相対パス絶対パス両方で指定することができます。
それぞれのパスについては、こちらの記事をご参考ください。
File.exist?メソッドのサンプルは、以下になります。
1 2 3 4 5 |
・絶対パス result = File.exist?("C:/sample/aaa.txt") ・相対パス result = File.exist?("./sample/aaa.txt") |
上記を実行すると、引数で指定されているaaa.txtが存在していればtrue、なければfalseが返ります。
では、次の章で実際に使ってみます。
File.exist?メソッドを解説するプログラムの概要
File.exist?メソッドを解説するプログラムでは、ファイルとディレクトリそれぞれで存在する、しないのケースを
- 絶対パス
- 相対パス
の2パターン、合計4パターンでFile.exist?メソッドに与えて、結果を確認します。
Rubyサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
puts "■File.exist?メソッドサンプル" puts "①ファイルが存在する場合" puts "・絶対パスで確認" if File.exist?("C:/rubystudy/sample/hogehoge/aaa.txt") then puts "aaa.txtは存在する" else puts "aaa.txtは存在しない" end puts "・相対パスで確認" if File.exist?("./sample/hogehoge/aaa.txt") then puts "aaa.txtは存在する" else puts "aaa.txtは存在しない" end puts puts "②ファイルが存在しない場合" puts "・絶対パスで確認" if File.exist?("C:/rubystudy/sample/hogehoge/bbb.txt") then puts "bbb.txtは存在する" else puts "bbb.txtは存在しない" end puts "・相対パスで確認" if File.exist?("./sample/hogehoge/bbb.txt") then puts "bbb.txtは存在する" else puts "bbb.txtは存在しない" end puts puts "③ディレクトリが存在する場合" puts "・絶対パスで確認" if File.exist?("C:/rubystudy/sample/aaa") then puts "aaaディレクトリは存在する" else puts "aaaディレクトリは存在しない" end puts "・相対パスで確認" if File.exist?("./sample/aaa") then puts "aaaディレクトリは存在する" else puts "aaaディレクトリは存在しない" end puts puts "④ディレクトリが存在しない場合" puts "・絶対パスで確認" if File.exist?("C:/rubystudy/sample/bbb") then puts "bbbディレクトリは存在する" else puts "bbbディレクトリは存在しない" end puts "・相対パスで確認" if File.exist?("./sample/bbb") then puts "bbbディレクトリは存在する" else puts "bbbディレクトリは存在しない" end |
実行結果
実行する前の状態を確認します。
hogehogeディレクトリ配下には、aaa.txtは存在し、bbb.txtは存在しないことが確認できました。
aaaディレクトリは存在し、bbbディレクトリは存在しないことが確認できました。
では、実行してファイルまたはディレクトリが存在しているかのを確認します。
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
■File.exist?メソッドサンプル ①ファイルが存在する場合 ・絶対パスで確認 aaa.txtは存在する ・相対パスで確認 aaa.txtは存在する ②ファイルが存在しない場合 ・絶対パスで確認 bbb.txtは存在しない ・相対パスで確認 bbb.txtは存在しない ③ディレクトリが存在する場合 ・絶対パスで確認 aaaディレクトリは存在する ・相対パスで確認 aaaディレクトリは存在する ④ディレクトリが存在しない場合 ・絶対パスで確認 bbbディレクトリは存在しない ・相対パスで確認 bbbディレクトリは存在しない |
相対パス絶対パスともに、ファイルもディレクトリの存在チェックができていることが確認できました。
まとめ:File.exist?メソッドを使ってみよう!
以上がFile.exist?メソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント