【发布时间】:2019-05-02 07:10:18
【问题描述】:
我正在编写一个音乐播放器,它从“data.txt”文件中读取数据(不是问题),然后将其存储在一个数组中,其中包含名为专辑的记录,其中包括标题、艺术家....和曲目.在曲目记录中,它包括曲目名称和曲目位置。
在下面的代码中,我尝试搜索曲目,例如 \music\album1\song_name1.mp3,但尽管文件退出,但在 IF 语句事件中返回为 false。
def playTrack(track, album)
if File.file?(album.tracks[track].location)
puts "Found"
@song = Gosu::Song.new(album.tracks[track].location)
@song.play
else
puts "Not found"
puts album.tracks[track].location
end
end
【问题讨论】:
-
问题肯定出在相对路径上。尝试
puts Dir.getwd(Dir.getwd) 并找出问题所在。 -
我不是 Windows 用户,但 IIRC Ruby 在 Windows 上也使用
/作为路径分隔符。 -
@Jakevarrese :我确定你的路径是错误的。看到消息未找到后,究竟打印了什么?我建议您将
puts album.tracks[track].location替换为p album.tracks[track].location,这样您才能真正看到这个变量中的内容。 -
感谢您的帮助。我会调查的