【问题标题】:Searching if File does exist搜索文件是否存在
【发布时间】: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,这样您才能真正看到这个变量中的内容。
  • 感谢您的帮助。我会调查的

标签: ruby file


【解决方案1】:

是的。使用 p 而不是 puts 可以帮助我看到字符串后面有一个 \n。现在一切正常。

刚刚做了。咬住要修复的字符串

【讨论】:

    猜你喜欢
    • 2019-02-04
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多