乐者为王

Do one thing, and do it well.

使用Ruby批量修改繁体文件名为简体

首先是遍历目录所有文件,使用了 http://beike.iteye.com/blog/361108 的代码,稍微做了下修改。主要是在Windows下处理系统目录时会停止遍历,加上了异常处理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def traverse(path)
  begin
    if File.directory?(path)
      Dir.foreach(path) do |file|
        if file != "." and file != ".."
          traverse(path + "/" + file) {|x| yield x}
        end
      end
    else
      yield path
    end
  rescue
    puts "Error: #{$!}"
  end
end

如果不输入文件夹路径,就使用当前目录作为根目录:

1
root = ARGV[0] || Dir.pwd

将繁体中文改成简体的代码:

1
2
3
4
5
6
7
mapping = {}
mapping["無"] = "无"
mapping["龍"] = "龙"

mapping.each do |key, value|
  file.gsub!(key.encode('gbk', 'utf-8'), value.encode('gbk', 'utf-8'))
end

文件重命名:

1
File.rename(old_file_name, new_file_name)

代码下载:https://github.com/dohkoos/big2gb

Comments