ruby フォルダの中のファイルを探索し上部階層ごとに整理してCSVに落とし込む



$array =
$output =

dir = 'work'




Dir.glob('../' + dir + '/*/*').each do |f|
    puts f
    fname = File.basename(f)
    puts fname
    $array.push(f)
end


$record

$array.each{|dir2|
puts "dir2 = " + dir2
dir2bname = File.basename(dir2)

str = dir2bname.match(/\d+/)
out1 = str[0]
puts out1

$record = out1 + "," + dir2bname

Dir.glob( dir2 + '/**/*').each do |d2|
  puts d2

    d = File.mtime(d2)
    datestr = d.strftime("%Y年%m月%d日")
    puts datestr

    $record << "," + File.basename(d2)
    $record << "(" + datestr + ")"
  if d2.include?(".js") == true then
      puts "jsファイルあり"
      $record << ",jsファイルあり"
  end
end

$output.push($record)
$record = ""
}


puts $output

File.open("../work/sample_.csv","a") do |file|
file.puts($output)
end




rubyでファイル名の末尾に文字列を追加するスクリプト

バックアップとか取る時にファイル名の(ドットの前)末尾へ"_bk201XXXX"とか大量のファイルに一括で入れるサンプルです。

 

Dir.glob('../test/**/*.*').each do |f|
fname = File.basename(f)
dname = File.dirname(f)
n = fname.split(".")
File.rename(f , dname + "/" + n[0] + "_bk20160000." + n[1])

end