您的位置:首页 > 编程语言 > Ruby

Ruby 脚本 音乐文件自动归档

2010-07-26 22:46 260 查看
注: 该文章为原创,代码可以自由使用,但是作者不保证代码的稳定性,安全性,因此谨慎使用。若转载该文章,请注明出处。

因为自己机器上的音乐比较多,并且存储的位置比较乱,因此用ruby写了个小脚本用来归档音乐文件。这也是第一次使用ruby写脚本,难免有些磕磕碰碰。

贴代码:

sortfile.rb:

require 'FileUtils'
basedir = Dir.pwd
ext= "*.mp3"
files = Dir.glob(ext)
files.each do |file|
if(file.index('-')!=nil && file.index('-')>0)

begin
slices = file.split('-')
filePath =File.expand_path(File.join(File.dirname(file),file))
path = File.expand_path(File.join(File.dirname(file),slices[0]))
if(File.exist?(filePath))
begin
if(File.directory?(path))
begin
FileUtils.mv(filePath, path+'/'+file)
end
else
begin
FileUtils.mkdir(path)
FileUtils.mv(filePath, path+'/'+file)
end
end
end
end
end
end
end


如果想不安装ruby解释器执行该程序,可以通过exerb这个小工具把ruby代码文件编译成.exe.

程序假设音乐文件的 文件名格式为: 林俊杰- 一千年以后。

程序的具体逻辑是:

1. 获取脚本运行当前目录下所有的文件。

2. 把文件名分割成两部分,歌曲演唱者的名字,歌曲名称。

3. 检查以歌手的名称的文件夹是否存在,存在则直接将歌曲移动到以歌手名字文件夹明的文件夹。

4. 如果以歌手名字为文件夹明的文件夹不存在的话,创建之,并重复步骤2.

改程序的使用方法为:

cmd-》命令行-》cd music dir-》ruby ......./sortfile.rb

这是手动归档, 如果想自动归档可以写个bat文件,并且通过windows 的schedule 去定期执行脚本。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: