有没有一种方法可以检测目录/文件/符号链接等实体(更一般化)是否存在?
我需要一个函数,因为我需要判断一系列路径,可能是目录、文件或符号链接.我知道File.exists?"file_path"
适用于目录和文件,但不适用于符号链接(File.symlink?"symlink_path"
).
有没有一种方法可以检测目录/文件/符号链接等实体(更一般化)是否存在?
我需要一个函数,因为我需要判断一系列路径,可能是目录、文件或符号链接.我知道File.exists?"file_path"
适用于目录和文件,但不适用于符号链接(File.symlink?"symlink_path"
).
标准文件模块通常有file tests个:
RUBY_VERSION # => "1.9.2"
bashrc = ENV['HOME'] + '/.bashrc'
File.exist?(bashrc) # => true
File.file?(bashrc) # => true
File.directory?(bashrc) # => false
你应该能在那里找到你想要的东西.
OP:"谢谢,但我需要这三个是真是假"
显然不是.好吧,试试这样:
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