web-dev-qa-db-fra.com

comment obtenir le chemin absolu du répertoire de travail actuel d'irb

J'utilise Ruby sous Windows bien que je ne sache pas si cela devrait faire une différence. Tout ce que je veux, c'est obtenir le chemin absolu du répertoire de travail actuel. Est-ce possible d'irb? Apparemment, à partir d'un script, il est possible d'utiliser File.expand_path(__FILE__)

Mais d’irb, j’ai essayé ce qui suit et j’ai eu l’erreur "Autorisation refusée":

File.new(Dir.new(".").path).expand
258
George Jempty

Dir.pwd semble faire l'affaire.

http://Ruby-doc.org/core/Dir.html#method-c-pwd

481
user85509

File.expand_path File.dirname(__FILE__) retournera le répertoire relatif au fichier à partir duquel cette commande est appelée.

Mais Dir.pwd renvoie le répertoire de travail (résultats identiques à l'exécution de pwd dans votre terminal)

178
Psylone

Quant au chemin relatif au script en cours d’exécution, puisque Ruby 2. vous pouvez aussi utiliser

__dir__

Donc, c'est fondamentalement la même chose que

File.dirname(__FILE__)
55
udo

Cela vous donnera le répertoire de travail du fichier actuel.

File.dirname(__FILE__)

Exemple:

current_file: "/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__)
3

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 va retourner

=> "/User/abc/xyz/some-dir/some-file-name"
2
yeshwant singh