Windows Media Audioのタグを頼りにフォルダ作ってファイル名変更して整理する

一部 ruby の wmainfo でタグ情報を読んだ時にエラーが出る。
iconv が UTF-8 の変換で失敗する。なぜに?

# checking wma tag informaiton and rename from tag infomation

require 'rubygems'
require 'wmainfo'
require 'find'
require 'fileutils'
require 'kconv'

search_path = ARGV.shift
dest_path = ARGV.shift
dest_path = search_path if dest_path.nil?
col_name = ['AlbumTitle', 'AlbumArtist', 'TrackNumber', 'Author', 'Title']

log = File.open("log.csv", "w")
log.print 'FileName,' + col_name.join(',') + "\n"

Find.find(search_path) do |filename|
	next unless filename.match(/\.(ASF|asf|wma|WMA)$/)
	if FileTest.directory?(filename) then
		print filename, "\n"
		next
	end
	begin
		log.print filename, ","
		print filename, "\n"
		wma = WmaInfo.new(filename, :encoding=>"UTF-8")
		tmp = []
		col_name.each do |col|
			tmp << wma.tags[col]
		end
		log.print tmp.join(',')
		new_name = []
		new_path = []
		if (artist = wma.tags['AlbumArtist'].to_s).size > 0 then
			new_path << artist
		elsif (artist = wma.tags['Author'].to_s).size > 0 then
			new_path << artist
		end
		if (album = wma.tags['AlbumTitle'].to_s).size > 0 then
			new_path << album
		end
		if (track = wma.tags['TrackNumber'].to_s).size > 0 then
			new_name << sprintf("%02d", track)
		end
		if wma.tags['Title'].to_s.size > 0 then
			new_name << wma.tags['Title'].to_s
		else
			next
		end
	rescue
		log.print $!, "\n"
		next
	end
	new_name = (new_name.join(' - ') + '.wma').tosjis
	new_path = (dest_path + '\\' + new_path.join('\\')).tosjis
	new_name.gsub!(/[\/:<>\\\*\?\"|]/, '_') if new_name.match(/[\/:<>\\\*\?\"|]/)
	new_name = new_path + '\\' + new_name
	if FileTest.exist?(new_name) then
		log.print("don't move\n")
		print "don't move\n"
		next
	else
		p new_path
		FileUtils.mkdir_p(new_path) if !FileTest.exist?(new_path)
		FileUtils.mv(filename, new_name)
		print new_name,"\n"
		log.print "," + new_name + "\n"
	end
end

下に書いたmp3バージョンはフォルダ分類はしてなかった。
だいぶ前に作ったやつだから動作忘れてた。