Rubyで特定のディレクトリが存在するかどうかを確認する方法 質問する

Rubyで特定のディレクトリが存在するかどうかを確認する方法 質問する

指定されたディレクトリが存在するかどうかに基づいて、Subversion URL を自動的にチェックアウトまたは更新するスクリプトを作成しようとしています。

何らかの理由で、私のコードは動作せず、常に真実たとえそれが嘘だとしても:

def directory_exists?(directory)
  return false if Dir[directory] == nil
  true
end

何が間違っているのでしょうか?

ベストアンサー1

探しているファイルがディレクトリファイルだけではなく、File.directory?または を使用できますDir.exist?。これは、ファイルが存在し、ディレクトリである場合にのみ true を返します。

余談ですが、メソッドをより慣用的に記述するには、Ruby がメソッド内の最後の式の結果を自動的に返すという事実を利用することです。つまり、次のように記述できます。

def directory_exists?(directory)
  File.directory?(directory)
end

この場合、メソッドを使用する必要はないことに注意してください。

おすすめ記事