How to check if a directory/file/symlink exists with one command in Ruby

前端 未结 2 1871
粉色の甜心
粉色の甜心 2020-12-02 21:38

Is there a single way of detecting if a directory/file/symlink/etc. entity (more generalized) exists?

I need a single function because I need to check an array of p

相关标签:
2条回答
  • 2020-12-02 22:18

    Why not define your own function File.exists?(path) or File.symlink?(path) and use that?

    0 讨论(0)
  • 2020-12-02 22:32

    The standard File module has the usual file tests available:

    RUBY_VERSION # => "1.9.2"
    bashrc = ENV['HOME'] + '/.bashrc'
    File.exist?(bashrc) # => true
    File.file?(bashrc)  # => true
    File.directory?(bashrc) # => false
    

    You should be able to find what you want there.


    OP: "Thanks but I need all three true or false"

    Obviously not. Ok, try something like:

    def file_dir_or_symlink_exists?(path_to_file)
      File.exist?(path_to_file) || File.symlink?(path_to_file)
    end
    
    file_dir_or_symlink_exists?(bashrc)                            # => true
    file_dir_or_symlink_exists?('/Users')                          # => true
    file_dir_or_symlink_exists?('/usr/bin/ruby')                   # => true
    file_dir_or_symlink_exists?('some/bogus/path/to/a/black/hole') # => false
    
    0 讨论(0)
提交回复
热议问题