Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Procesar archivos inmediatamente despues de su copiado o transferencia. (https://www.clubdelphi.com/foros/showthread.php?t=63505)

fredycc 17-02-2009 15:50:06

Procesar archivos inmediatamente despues de su copiado o transferencia.
 
Hola amigos del club, quisiera saber si es posible crear en Delphi de algún modo, un programa o servicio que me ayude a procesar un archivo despues de terminar su copiado o transferencia, les explico; en este caso estoy utilizando unas bases de datos de SQLite que son enviadas via FTPs desde pockets a un servidor, compresas y encriptadas, ahora quisiera tomarlos inmediatamente despues de completar la transferencia a una base de datos en interbase con Delphi; pero tengo dudas de como hacer esto para no tenga que hacerlo manualmente, ya que actualmente de este modo se hace; les agradecería el apoyo.:)

duilioisola 17-02-2009 16:32:03

Se me ocurre una solución fácil y 2 difíciles.

Fácil:
Para saber que se ha finalizado el envío de una base, que el Pocket envíe primero la base y luego un archivo con el mismo nombre, pero con extensión .FIN
Cuando veas un archivo con esa extensión, lo borras y procesas la base.
El archivo .FIN asegura que la base se terminó de transmitir y que llegó completamente.

Difícil 1:
Hacer un hook al sistema de archivos (no tengo ni idea de como se hace esto) y recibir los mensajes de escritura de archivos. Cuando veas que uno finaliza, empiezas a procesar.
Esto no garantiza que el archivo esté completo

Difícil 2:

Ir mirando mediante alguna API de Windows, los usuarios que están utilizando un archivo. Cuando no haya más usuarios, supones que el archivo ha llegado completo y que es correcto.

fredycc 17-02-2009 16:49:03

Buena idea
 
Gracias[FONT='Calibri','sans-serif']duilioisola, la primera idea me parece excelente, me parece muy viable y fácil de implementar; gracias :).[/font]

cHackAll 17-02-2009 20:30:53

FindFirstChangeNotification :rolleyes:


La franja horaria es GMT +2. Ahora son las 18:35:55.

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