ttlog

日々の開発で得た知見の技術メモ。モバイルアプリネタが多いです。

大量のファイルをタイムスタンプの日付毎にフォルダ分け

大量の写真ファイルを整理したかったのでRubyでサクッと書き殴り。 とはいえ、また使いそうな気もするのでメモしておきます。

require 'fileutils'

Dir.chdir("xxx")   # ファイルが入っているディレクトリ
Dir.each_child(".") { |file|
  timestamp = File.mtime(file)
  dirname = timestamp.strftime("%F") # "YYYY-MM-DD"形式(ISO-8601)
  if File.directory?(file) then
    next  # ディレクトリは無視
  end
  if not Dir.exist?(dirname) then
    Dir.mkdir(dirname)
  end
  FileUtils.mv(file, dirname)
}