【簡単】Ruby未経験で一括ファイルリネームツール作ってみたらどれくらいで完成するのか【結果4時間】
別の言語をやったことがあるので、完璧な初心者ではないですがRubyは初です。
現役の技術者が新しい言語やったらどれくらいで使えるようになるか気になったのでちょっとやってみました。
といっても、何作っていいか分からず大したもの作っていないので完璧に使いこなせてるわけじゃないです。
本当にやってみたかっただけです。
今回はファイルのリネームを一括で行う操作をRubyでやってみました。
当ブログのコードを利用して起こる不具合については対応できませんのでご了承ください。
本記事の内容を参考にブログ等で情報発信をする場合には、下記のルールを確認頂きたいと思います。
仕様
- 該当フォルダ直下に保存されたファイル名の変更を一括で行う。(サブディレクトリはリネームの範囲外とする。)
- 変更後の名前は、入力された文字列+0埋め4桁の連番にする。
- 変更対象は拡張子単位で指定できるようにし、入力された拡張子を対象とする。
- 対象のフォルダパスについては固定とし、プログラム中に記載する。(間違ったフォルダを指定してしまう可能性があるため)
- フォルダの存在チェックを行う。
仕様は以下の通りです。
といった感じです。
使う場面があまり想像できないですが、これで作っていきます。
コード
#フォルダ固定
folder = "file_rename/"
#フォルダ存在チェック
if !(Dir.exist?(folder)) then
puts folder+"フォルダが存在しません。"
exit
end
puts "変更対象のファイル拡張子を入力してください。(txt,jpg等)"
extension = gets.chomp
#ファイルパス作成
rename_target = folder+"*."+extension
#ファイル存在チェック
if Dir.glob(rename_target).count == 0 then
puts folder+"フォルダに拡張子:"+extension+"のファイルがありません。"
exit
end
puts "変更後のファイル名を入力してください。"
puts "※入力したファイル名の後に4桁の連番が付与されます。"
after_name = gets.chomp
#リネーム
Dir.glob(rename_target).each_with_index do |item,i|
File.rename(item,folder+after_name+format('%04d',(i+1).to_s)+"."+extension)
end
実行
適当なフォルダにRubyのコード配置+コードにべた書きした「file_rename」フォルダを同じ階層に作成。
「file_rename」フォルダの直下はこんな感じです。
実際に実行させます。
今回は拡張子「txt」のファイルを「test」という名称に変更します。
結果がこちら
「txt」だけ変わっているので成功です。
どれくらいでできたか
Rubyのインストールから含めると、約4時間でした。
そのうちの2時間はVSCodeにコード補完の設定とかやってて潰れています。
ちなみに結局コード補完はできませんでした。
たぶん何か原因があると思うのですが、また今度やってみます。
APIとかフレームワークとか全く使ってないので、これぐらいの時間は妥当かなと思います。
次はもう少し利便性のあるものを作りたいですね。
まとめ
今回はものを仕上げるために必要部分しか調査していないので、玄人から見ると書き方が変だったりするかもしれないです。
もう少しやってみたいなと思っているので、入門書探して勉強したいと思います。