Je cours Ruby sur Windows, mais je ne sais pas si cela devrait faire la différence. Tout ce que je veux faire, c’est obtenir le chemin absolu du répertoire de travail en cours. Est-ce possible d’irb? Apparemment, à partir d’un script, il est possible d’utiliser File.expand_path(__FILE__)
Mais de l’irb j’ai essayé ce qui suit et j’ai eu une erreur “Permission denied”:
File.new(Dir.new(".").path).expand
Dir.pwd
semble faire l’affaire.
File.expand_path File.dirname(__FILE__)
renverra le répertoire relatif au fichier à File.expand_path File.dirname(__FILE__)
cette commande est appelée.
Mais Dir.pwd
retourne le répertoire de travail (résultats identiques à l’exécution de pwd
dans votre terminal)
En ce qui concerne le chemin relatif au script d’exécution en cours, depuis Ruby 2.0, vous pouvez également utiliser
__dir__
Donc, c’est fondamentalement la même chose que
File.dirname(__FILE__)
Cela vous donnera le répertoire de travail du fichier en cours.
File.dirname(__FILE__)
Exemple:
fichier_actuel: “/Users/nemrow/SITM/folder1/folder2/amazon.rb”
résultat: “/ Users / nemrow / SITM / folder1 / folder2”
Si vous voulez obtenir le chemin complet du répertoire du fichier rb actuel:
File.expand_path('../', __FILE__)
Grâce à cela, vous pouvez obtenir le chemin absolu de tout fichier situé dans n’importe quel répertoire.
File.join(Dir.pwd,'some-dir','some-file-name')
Cela reviendra
=> "/User/abc/xyz/some-dir/some-file-name"