保存/关闭文件时出现Ruby-Mp3Info错误

时间:2014-06-30 18:26:15

标签: ruby

我已升级到新的mp3info GEM,现在在将更改写入MP3标签时似乎存在问题。 Ruby版本1.9.3,mp3info版本0.8.4,Windows 7 - 64位。

简单程序:

require 'mp3info'
mp3 = Mp3Info.open('a.mp3')
mp3.title = 'bogo'
mp3.close

结果:

Errno::EACCES: Permission denied - (./.a.mp3.tmp, a.mp3)
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-mp3info-0.8.4/lib/mp3info.rb:453:in `rename'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-mp3info-0.8.4/lib/mp3info.rb:453:in `close'
from (irb):6
from D:/Ruby193/bin/irb:12:in `<main>'

我已检查过文件/文件夹的权限,并且我在CMD shell中以管理员身份运行。

1 个答案:

答案 0 :(得分:0)

自ruby-mp3info版本0.8.8

以来已过时

自ruby-mp3info版本0.8.8

以来,这个答案已经过时了

我认为这是mp3info中的错误,(我检查了实际版本0.8.7)。

方法Mp3Info#close并不总是关闭内部io。

如果你这样修改mp3info.rb:

###>>>Approx line 370:
# Flush pending modifications to tags and close the file
# not used when source IO is a StringIO
def close
....
  end
  #####   ###aprox line 465
  @io.close unless @io.closed?  ## <<<< add this.
  #####
end
然后问题就解决了。

此错误已在pull request中报告并更正。 ruby-mp2info-gem版本0。8。8(2016年1月26日)包含此更正。