Comment vérifier si un répertoire/fichier/lien existe en une seule commande, en Ruby
Est-il une seule façon de détecter si un répertoire/fichier/lien symbolique/etc. entité (plus généralisée) existe?
J'ai besoin d'une fonction unique, parce que j'ai besoin de vérifier un tableau de chemins d'accès qui pourraient avoir 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 les liens symboliques (qui est File.symlink?"symlink_path"
).
- Quelle est la version de Ruby utilisez-vous? Fichier.existe? fonctionne pour les liens symboliques pour moi en Ruby 1.9.2 dans OS X 10.6.6
- À préciser: pour les liens symboliques, vous allez avoir quelque chose qui renvoie
true
si le lien existe, indépendamment du fait qu'il peut être réglé à un non-symlink. I. e. il doit retournertrue
pour les liens cassés ainsi.File.exists?
ne retourtrue
pour un lien symbolique qui n'est pas rompu.
Vous devez vous connecter pour publier un commentaire.
Le Fichier standard module a l'habitude d' fichier de tests disponibles:
Vous devriez être en mesure de trouver ce que vous voulez.
Évidemment pas. Ok, essayez quelque chose comme:
ENV['HOME'] + '/.bashrc'
) qui peut ne pas fonctionner de la croix-plate-forme. Vous devez utiliser Ruby Fichier joint et aussi pourquoi ne pas commencer à partir deRails.root
si vous êtes à l'aide de Rails.File.exists?(Rails.root.join('db', 'my_seeds.csv')
/
n'est pas la question, mais, depuis Ruby IO convertit automatiquement à partir des barres obliques pour des barres obliques inverses sur Windows.bash
dans le Menu Démarrer, et dans la fenêtre de la console,cat ~/.bashrc
produit de sortie. \_(ツ)_/Pourquoi ne pas définir votre propre fonction
File.exists?(path) or File.symlink?(path)
et l'utiliser?