Hola a todos, primero que nada me presento..soy Martin de Uruguay y
estoy recien iniciandome a aprender de este lenguaje y sorprendido por
la cantidad de cosas interesantes que se pueden realizar a bajo costo
de programación.

Como buen novato tengo un problemita en un script que estoy haciendo
para  probar el lenguaje...tome parte de un código que busqué para
recorrer directorios en forma recursiva y asi obtener los archivos que
esten dentro...pasarle MD5 checksum y agregar el MD5 a una
lista....agregar los que no son repetidos y en caso de repetido pienso
avisarle al usuario, sería algo así como un programa que encuentra
archivos duplicados. No es nada bueno pero para aprender creo que
puede servir :P

El problema que tengo es que en linux hay enlaces...por ejemplo en
./Trash yo tengo el archivo "lock"    que enlace a:
/home/martin/.Trash/127.0.1.1:+5751

Este tipo de archivos me causan que ruby me lanze un error...también
si la ruta a escanear es "/" hay archivos que no tiene permiso Ruby
para leerlos.

Los permisos no debe ser muy dificil de tratar..el tema que tengo es
con los archivos que no detecta ni como archivo ni como directorio que
son los enlaces de ese tipo....

Les dejo el código:

Clase Program
***************

require 'dupes'

class Program

Dupes.new.buscarDupes("/")

end


Clase Dupes
*************

require 'find'
require 'digest/md5'

class Dupes

  def buscarDupes(ruta)
    for i in ruta
      Find.find(i) do |dir|
        if !FileTest.directory?(dir)
          digest = Digest::MD5.hexdigest(File.read(dir))
          puts " el MD5 del archivo: #{dir} es #{digest}"
         # arrayList = [digest]
        end
      end
    end
  end

end






-- 
Martín Sagastume
094-575846
Montevideo - Uruguay
http://musicapastillera.blogspot.com
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a