comment obtenir le répertoire de travail en cours de chemin absolu irb
-
20-09-2019 - |
Question
Je suis en cours d'exécution Ruby sous Windows si je ne sais pas si cela devrait faire une différence. Tout ce que je veux faire est d'obtenir le chemin absolu du répertoire de travail en cours. Est-ce possible de RIR? Apparemment, à partir d'un script, il est possible à l'aide File.expand_path(__FILE__)
Mais j'ai essayé de RIR ce qui suit et obtenu une « Autorisation refusée » Erreur:
File.new(Dir.new(".").path).expand
La solution
Dir.pwd
semble faire l'affaire.
Autres conseils
File.expand_path File.dirname(__FILE__)
retourne le répertoire relatif au fichier cette commande est appelée.
Mais Dir.pwd
retourne le répertoire de travail (résultats identiques à exécuter pwd
dans votre terminal)
En ce qui concerne le chemin relatif au script exécution en cours, depuis Ruby 2.0 vous pouvez également utiliser
__dir__
Donc, c'est essentiellement le même que
File.dirname(__FILE__)
Cela vous donnera le répertoire de travail du fichier en cours.
File.dirname(__FILE__)
Exemple:
CURRENT_FILE: "/Users/nemrow/SITM/folder1/folder2/amazon.rb"
résultat: "/ Users / nemrow / SITM / dossier1 / dossier2"
Si vous voulez obtenir le chemin complet du répertoire du fichier rb en cours:
File.expand_path('../', __FILE__)
Grâce à cela, vous pouvez obtenir le chemin absolu d'un fichier situé dans un répertoire.
File.join(Dir.pwd,'some-dir','some-file-name')
Ceci renverra
=> "/User/abc/xyz/some-dir/some-file-name"