Comportement étrange du rubis avec la constante __FILE__ ?
Question
Bonjour, j'ai testé des choses très basiques en Ruby et découvre ce qui suit.
Si je mets un fichier appelé xxxx.rb dans ce chemin "C:\Documents and Settings\Desktop\xxxx.rb"
puts __FILE__
et invoquez ce fichier Ruby dans une ligne de commande SANS précéder Ruby, le résultat est le suivant
C:/Documents et paramètres/Bureau/xxxx.rb
mais si j'invoque le fichier xxxx.rb avec rubis (ruby xxxx.rb) dans la commande comme le résultat est le suivant :
xxxx.rb
Pourquoi cette différence ??Merci
PD :JE SUIS SOUS WINDOWS XP SP3
VERSION RUBIS :1.8.6
La solution
Ce que vous voulez, c'est étendre le chemin correctement :
# Affected by the current working directory, etc.
puts __FILE__
# Always an absolute path
puts File.expand_path(__FILE__, Dir.getwd)
Cela prend en compte votre répertoire de travail actuel.
Autres conseils
Je suppose que lorsque vous double-cliquez simplement sur le fichier, le chemin absolu est transmis.Vous devriez obtenir le même effet en l'appelant comme :
ruby C:/Documents and Settings/Desktop/xxxx.rb