我已升级到新的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中以管理员身份运行。
答案 0 :(得分:0)
自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日)包含此更正。