こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 Rubyのディレクトリを削除するDir.deleteメソッドについて
- Dir.deleteメソッドとは
- Dir.deleteメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
この記事ではRubyプログラムは
C:\rubystudy
に作成しています。
Dir.deleteメソッドとは
Dir.deleteメソッドとは、引数に指定されたパスのディレクトリを削除し、削除に成功すると0を返すメソッドです。
削除したいディレクトリは、相対パスでも絶対パス両方で指定することができます。
それぞれのパスについては、こちらの記事をご参考ください。
Dir.deleteメソッドのサンプルは、以下になります。
1 2 3 4 5 |
・絶対パス Dir.delete("C:/sample/sample") ・相対パス Dir.delete("./sample") |
上記を実行すると、引数で指定されているsampleディレクトリは削除され、返り値として0が返ります。
Dir.deleteメソッドを使う上で、注意点が2点あります。
1点目はもし存在しないディレクトリを引数に指定していた場合、
1 2 3 |
Traceback (most recent call last): 1: from delete_dir_sample.rb:2:in `<main>' delete_dir_sample.rb:2:in `delete': No such file or directory @ dir_s_rmdir - ./sample/sample (Errno::ENOENT) |
とシステムエラーとなることです。
ディレクトリが存在するかどうかは、Dir.exist?メソッドで確認できます。
詳しくはこちらの記事をご参考ください。
2点目はDir.deleteメソッドの対象は、空のディレクトリでなければならないという点です。
もしファイルが存在するディレクトリに対してDir.deleteメソッドを実行しようとした場合
1 2 3 |
Traceback (most recent call last): 1: from delete_dir_sample.rb:2:in `<main>' delete_dir_sample.rb:2:in `delete': Directory not empty @ dir_s_rmdir - ./sample/sample (Errno::ENOTEMPTY) |
とシステムエラーとなります。
ディレクトリが空かどうかは、Dir.empty?メソッドで確認できます。
詳しくはこちらの記事をご参考ください。
では、次の章で実際に使ってみます。
Dir.deleteメソッドを解説するプログラムの概要
Dir.deleteメソッドを解説するプログラムでは、
- 絶対パス
- 相対パス
の2パターンでDir.deleteメソッドを使って空のディレクトリを削除し、結果を確認します。
Rubyサンプルプログラム
1 2 3 4 5 6 7 8 9 |
puts "■Dir.deleteメソッドサンプル" puts "・絶対パスで削除" Dir.delete("C:/rubystudy/sample/hogehoge") puts "・相対パスで削除" Dir.delete("./sample/test") puts "削除完了" |
実行結果
削除実行する前の状態を確認します。
sampleディレクトリに
- hogehoge
- test
のディレクトリが存在していることが確認できました。
では、実行してディレクトリが削除できるかを確認します。
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
1 2 3 4 |
■Dir.deleteメソッドサンプル ・絶対パスで削除 ・相対パスで削除 削除完了 |
無事実行が完了しました。
sampleディレクトリを確認します。
指定した2ディレクトリが削除できていることが確認できました!
まとめ:Dir.deleteメソッドを使ってみよう!
以上がDir.deleteメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント