Ver Mensaje Individual
  #10  
Antiguo 16-01-2007
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Reputación: 20
rretamar Va camino a la famarretamar Va camino a la fama
Cita:
Empezado por dec
Pongamos por caso que grabas el archivo "C:\archivo.bmp" en el CD que se encuentra en la unidad "E". Para comprobar que el archivo se grabó correctamente una posible forma sería obtener el MD5 del archivo "C:\archivo.bmp" y compararlo con el del archivo "E:\archivo.bmp". Evidentemente este último ha de existir: de no ser así ya sabríamos que la grabación no terminó correctamente.

Pero tú para comprobar la existencia del archivo "E:\archivo.bmp" utilizarás la función "FileExists" (por simplificar el ejemplo) y le dirás al sistema operativo que te diga si el archivo "E:\archivo.bmp" existe o no existe: no si existe en la caché o no existe en la caché, sino si existe el archivo "E:\archivo.bmp". Así que no sé si me estoy perdiendo algo o qué...
Lo haga con md5sum, o con una función de comparación en memoria usando streams, lo haga de la forma en que lo haga, el problema no es ese. El problema está en la cache de lectura que Windows implementa en las unidades removibles, en este caso la grabadora de CD. Esta cache hace que al CD recien grabado no me lo lea fisicamente.

El problema es (voy a usar las letras de unidades de tu mensaje) es que cuando leo la unidad E: ,no me lee fisicamente el CD, sino que (al ser pocos datos los que grabo en el CD, 150 Mb como mucho) a los archivos los lee de la memoria (ya que Windows cachea las lecturas en las unidades removibles, y al ser un CD recién grabado, entonces su contenido está "cacheado"). Y al no leer fisicamente el CD, entonces NO puedo verificar si REALMENTE los datos se grabaron correctamente.

Gracias por la paciencia...

Saludos desde Argentina, Tux
Responder Con Cita