jueves, 4 de agosto de 2011

Buscar Archivos en Carpetas

Bueno el día de ahora no tenia nada que hacer así que se me ocurrió realizar un pequeño script para mostrar todos los archivos que existen en un directorio especifico y aquí esta el resultado.




#!/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