Comment vérifier si un répertoire/Fichier/lien symbolique existe avec une commande dans Ruby
y a-t-il un seul moyen de détecter si un répertoire/file/symlink/etc. entité (plus généralisée) existe?
j'ai besoin d'une seule fonction parce que j'ai besoin de vérifier un tableau de chemins qui pourraient être des répertoires, des fichiers ou des liens symboliques. Je sais que File.exists?"file_path"
fonctionne pour les répertoires et les fichiers, mais pas pour les liens symboliques (qui est File.symlink?"symlink_path"
).
2 réponses
le module de fichier standard a l'habituel tests de fichier disponible:
RUBY_VERSION # => "1.9.2"
bashrc = ENV['HOME'] + '/.bashrc'
File.exist?(bashrc) # => true
File.file?(bashrc) # => true
File.directory?(bashrc) # => false
vous devriez pouvoir y trouver ce que vous voulez.
OP: "Merci, mais j'ai besoin tous les trois true ou false"
évidemment pas. OK, essayez quelque chose comme:
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
pourquoi ne pas définir votre propre fonction File.exists?(path) or File.symlink?(path)
et l'utiliser?