#!/usr/bin/env ruby
class Busqueda
def initialize(w_ruta)
@w_directorio = w_ruta
@w_tipos = []
end
def mostrarArchivos
buscarDirectorio(@w_directorio)
end
def buscarArchivos
buscarTipos(@w_directorio)
end
def buscarTipo
buscarDirTipo(@w_directorio)
end
def agregarTipo(w_tipo)
if @w_tipos.include?(w_tipo)
puts "#{w_tipo} ya se ha ingresado"
else
@w_tipos.push(w_tipo)
end
end
def buscarDirectorio(w_directorio)
Dir.new(w_directorio).each do |w_archivo|
w_ruta = w_directorio + '/' + w_archivo
unless (w_archivo =~ /^\.+/)
File.directory?(w_ruta) ? buscarDirectorio(w_ruta) : mostrarArchivo(w_ruta)
end
end
end
def buscarDirTipo(w_directorio)
Dir.new(w_directorio).each do |w_archivo|
w_ruta = w_directorio + '/' + w_archivo
unless (w_archivo =~ /^\.+/)
File.directory?(w_ruta) ? buscarDirTipo(w_ruta) : verificarTipo(w_ruta)
end
end
end
def verificarTipo(w_archivo)
@w_tipos.each do |extension|
if w_archivo.end_with?(extension)
puts w_archivo
end
end
end
end
w_buscar = Busqueda.new(ARGV[0])
w_buscar.buscarTipo
w_buscar.agregarTipo('mp3')
w_buscar.agregarTipo('doc')
w_buscar.buscarTipo
La ejecución del script se realiza de la siguiente forma:
ruby buscar.rb "directorio"
Bueno el script se ejecuta bastante rápido(2 o 3 segundos) para mostrar todos los archivos en la carpeta home de mi computadora.
No hay comentarios:
Publicar un comentario