Existe-t-il un moyen unique de détecter si un répertoire/fichier/symlink/etc. entité (plus généralisée) existe?
J'ai besoin d'une seule fonction car j'ai besoin de vérifier un tableau de chemins qui pourraient être des répertoires, des fichiers ou des liens symboliques. Je sais File.exists?"file_path"
fonctionne pour les répertoires et les fichiers mais pas pour les liens symboliques (ce qui est File.symlink?"symlink_path"
).
Le module File standard a l'habituel tests de fichiers 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 des trois vrais ou faux"
É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?