LoginSignup
2

More than 5 years have passed since last update.

iTunes のmp3ファイルが何故かURIエンコードされていたからrename してみた

Last updated at Posted at 2016-02-24

旧マックから新マックへの移行で何故かmp3ファイルがURIエンコードで文字化けしていたので、ruby のスクリプトでリネームしてみた。

rename_file.rb
require 'URI'
path = "mp3ファイルが入っているディレクトリのパス"
Dir.chdir(path)
Dir.open(path).each do |f|
    begin
    if File.rename(f, "#{URI.decode(f)}").zero?
        puts "Change name #{URI.decode(f)}" 
    end
    rescue SystemCallError
        puts "Can't rename #{f} to #{URI.decode(f)}"
    end
end

pathにはお使いのmp3が入っている絶対パスを書くと動きます。
一応エラーでリネーム操作が止まらないようにしておきました。


(追記:2016/02/26)このままだとファイル名に/ か\ が入ってるとリネームされないので、/ と\ を: に置換するコードを追記する

rename_file2.rb
require 'kconv'
require 'uri'
path = "mp3ファイルが入っているディレクトリのパス"

Dir.chdir(path)
Dir.open(path).each do |f|

    renamed_name = "#{URI.decode(f).gsub(/\/|\\/,':')}"

begin
    if File.rename(f, "#{renamed_name}").zero?
        puts "Change name #{renamed_name} "
    end

    rescue SystemCallError
        puts "Can't rename #{f} to #{renamed_name}"
    end
end

最後に

どなたか/ や\ のままrubyでリネームできる方法教えてください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2