46 votes

Ruby's File.open donne l'erreur "Aucun tel fichier ou répertoire - text.txt (Errno::ENOENT)"

J'ai installé Ruby 1.9.2 sur ma machine Win 7. Création d'un fichier analyzer.rb Il a cette ligne :

 File.open("text.txt").each {|line| puts line}

Quand je lance le code, il me donne cette erreur :

 analyzer.rb:1:in `initialize': No such file or directory - text.txt (Errno::ENOENT)
from analyzer.rb:1:in `open'
from analyzer.rb:1:in `<main>'
Exit code: 1

Je ne comprends pas. Il existe un text.txt dans le même répertoire que le fichier analyzer.rb . J'ai également essayé de fournir le chemin absolu du fichier, C:\Ruby192\text.txt , mais pas de dés. Qu'est-ce que je rate?

13voto

Till Points 14673

ENOENT signifie qu'il n'est pas là.

Mettez simplement à jour votre code pour :

 File.open(File.dirname(__FILE__) + '/text.txt').each {|line| puts line}

5voto

Bhaveshkumar Points 123

Veuillez utiliser chomp() ou chomp() avec STDIN

c'est-à-dire test1.rb

 print 'Enter File name: '

fname = STDIN.gets.chomp()  # or fname = gets.chomp()


fname_read = File.open(fname)

puts fname_read.read()

2voto

Andrew Grimm Points 22996

Essayez d'utiliser

 Dir.glob(".") 

Pour voir ce qu'il y a dans le répertoire (et donc quel répertoire il regarde).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X