X

Buscar arquivos de um diretório usando ruby filtrando por extensão

Este script tem a função de listar os arquivos de um determinado diretório com algumas extensões. Exemplo neste caso vamos filtrar so os arquivos de com a extensão “zip, tar, tar.gz”que devem estar no diretório “/Users/anselmo/Documents/Desenvolvimento/workspace/”, esta busca é recursiva.

Além de buscar o arquivo ele lê o tamanho do arquivo e imprime o valor abaixo do nome. Exemplo:

/Users/anselmo/Documents/Desenvolvimento/workspace/jdk-8u40-linux-x64.tar.gz
165 Mb

#!/usr/bin/env ruby
diretorio = "/Users/anselmo/Documents/Desenvolvimento/workspace/"
extensoes = "{zip,tar,tar.gz}"
buscar_por = "#{diretorio}**/*.#{extensoes}"
Dir.glob(buscar_por).sort!{|arquivos| 
  File.size(arquivos)}.each do |arquivos|
  puts "#{arquivos}"
  tamanho = (File.size(arquivos).to_f / 2**20).round(2).floor
  puts "#{tamanho} Mb"
end