Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Detectar modificaciones de ficheros con delphi (https://www.clubdelphi.com/foros/showthread.php?t=79693)

Aslansh 01-08-2012 00:49:11

Detectar modificaciones de ficheros con delphi
 
Buenas tardes este es mi problema quiero hacer un programa que cuando se modifique un fichero me lo detecte automaticamente, e buscado codigos y ejemplos pero no me han servido, quisiera si es posible que me orientaran de algun componente que me muestre el nombre de el fichero modificado, y si fuera un codigo igual me serviria, es que ya no se donde buscar, y quiero encontrar algo que me notifique el nombre del fichero modificado en tiempo real, me hablaron del api de wiindows pero no me ha servido, y con el apisoft que esta muy bueno no realiza la operacion que quiero por favor necesito ayuda para acabar mi proyecto

Casimiro Notevi 01-08-2012 01:01:55

Cita:

Empezado por Aslansh (Mensaje 438540)
he buscado codigos y ejemplos pero no me han servido, []
me hablaron del api de wiindows pero no me ha servido

¿Puedes especificar más?, ¿qué has buscado de códigos y ejemplos y no te ha servido y qué te hablaron de la api de windows y tampoco te ha servido?

roman 01-08-2012 02:09:19

Tal como dice Casimiro, debes aclarar qué es lo que has intentado pues si no, ¿cómo sabemos si lo que te propongamos no está dentro de lo que ya intentaste?

De todas formas, te comento que existe el componente ShellChangeNotifier que viene con Delphi y que detecta algunos cambios, si bien no necesariamente el que deseas. Sin embargo, el compañero delphi.com.ar tiene su propia versión que es más completa. Puedes descargarla de Torry. En su descripción dice, entre muchas otras cosas, que detecta cuando:

Cita:

An existing nonfolder item changes, but the item still exists and has not been renamed.
es decir, cuando un archivo cambia pero sin ser renombrado ni borrado.

Mira, a ver si te sirve.

// Saludos

maxinitto 03-08-2012 03:41:05

Jeje es curioso lo he leído y tampoco comprendo si lo que quiere averiguar es, si cambia el contenido o el nombre...

maxinitto 03-08-2012 03:44:00

Si se refiere al nombre se puede hacer alguna que otra cosilla... Así ahora mismo se me viene a la cabeza que la primera vez que cargue el programa almacene los nombres de los ficheros y/o directorios en un archivo de texto que el usuario quiera y que despues cada x tiempo vaya comprobando recursivamente esos ficheros para ver si sus tamaños y/o nombres, han cambiado... pero se puede mejorar.

Aslansh 04-09-2012 23:12:44

Sobre shellChangeNotifier
 
me haria falta algun manual o ejemplo sobre shellChangeNotifier si pudieran enviarme un link donde pueda encontrar algo de este tema

Casimiro Notevi 04-09-2012 23:14:44

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

roman 04-09-2012 23:17:29

¡Oh pues! O sea que los dos hilos de hoy eran repetición de éste. Vuelvo a cerrar el otro.

// Saludos

escafandra 04-09-2012 23:41:56

Cita:

Empezado por Aslansh (Mensaje 441835)
me haria falta algun manual o ejemplo sobre shellChangeNotifier si pudieran enviarme un link donde pueda encontrar algo de este tema

Quizás este hilo: "escuchar fichero" y este otro: "Monitorizando el Shell sólo con la API" te sirvan de ayuda.

Saludos.

Aslansh 06-09-2012 05:41:11

ya detecto cuando hay una modificcion en algun fichero ahora lo que me haria falta es saber el fichero que se modifco lo estoy haciendo con SHChangeNotify pero no me dice el fichero que ha sido modificado como podria hacerlo ya que en el eventoo on update dir solo me aparece el directorio donde se modifico algo me pudieran brindar algun codigo para esto

escafandra 06-09-2012 08:36:49

Si has seguido atentamente el hilo que te enlacé "escuchar fichero", te habrás dado cuenta de que no tenemos un indicador que informe directamente de la modificación de un fichero pero si de la carpeta que lo contiene. Así que la estrategia puede ser la siguiente:

1.- Una vez saltada la alarma sabemos que en cierta carpeta algo cambió. Si no se trata de la carpeta donde tenemos el fichero a vigilar no hacemos nada.

2.- Si la carpeta que cambió es la nuestra... miramos la fecha de modificación del fichero que nos interesa. Previamente deberíamos conocer la fecha y al compararla con la que ahora obtenemos sabremos si ha cambiado. Puede interesarte este tema.

Si queremos mas precisión en la verificación, podemos comparar los Hash previo y actual del fichero, de esta manera sabemos rápidamente si hubo un cambio de contenido y no solamente de fecha. Aquí encontrarás un ejemplo para calcular el MD5 de un fichero.


Saludos.


Casimiro Notevi 06-09-2012 10:24:44

Si tuviéramos un sistema de puntuación de respuestas, te votaría el máximo :)

escafandra 06-09-2012 13:40:35

Cita:

Empezado por Casimiro Notevi (Mensaje 442046)
Si tuviéramos un sistema de puntuación de respuestas, te votaría el máximo :)

Gracias. :)


Saludos.

roman 06-09-2012 17:09:46

Cita:

Empezado por Casimiro Notevi (Mensaje 442046)
Si tuviéramos un sistema de puntuación de respuestas, te votaría el máximo :)

Puedes aumentar su reputación,con la palomita de arriba de su mensaje :) Yo ya lo hice, aunque bien a bien, no sé dónde se ve la reputación de un usuario.

// Saludos

Casimiro Notevi 06-09-2012 17:39:56

Sí, he usado esa opción, pero es lo que tú dices, no se ve, para saber si es un usuario con buena o mala reputación :)

roman 06-09-2012 17:43:18

Creo que tiene que ver con el cuadrito verde, debajo del número de posts, pero al parecer todos vamos on distiguished road :eek:

// Saludos


La franja horaria es GMT +2. Ahora son las 13:15:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi