A ver si sirve,

 

Yo tengo un  servicio de interfaces que en un thread baja y sube archivos
desde y hasta un FTP y en otro thread controla las bandejas locales, dónde
son dejados esos archivos, para saber si los tiene que procesar. Ya que es
mi servicio el que escribe en mi bandeja de entrada o lee mi bandeja de
salida y lo sube al FTP el control lo tiene completamente él. Siempre que
estoy bajando un archivo lo hago con un nombre temporal y una vez que lo he
terminado de transferir (controlo un par de atributos para ver si es
correcto) y luego lo renombro. El thread que hace pooling sobre la bandeja
de entrada para ver si debe procesar un archivo solamente chequea aquellos
que tengan determinada estructura de nombres.

 

Todo esto, luego de haber luchado bastante tiempo con el FSW y no lograr
amigarnos J.

 

Espero que sirva, cualquier duda me avisan.

 

Gustavo

 

De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Carlos
Peix
Enviado el: Domingo, 24 de Agosto de 2008 04:43 p.m.
Para: [email protected]
Asunto: [puntonet] RE: [puntonet] Re: RE: [puntonet] Creación de un servicio
que "escucha" la llegada de archivos a una carpeta

 

Hola Gustavo,

 

Use una solucion parecida a la tuya, controle el LastWriteTime, de la clase
FileInfo.

 

Carlos Peix

 <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED]

tel: 4257-4622

cel: 15-4406-7571

 

  _____  

De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Gustavo
Ringel
Enviado el: Domingo, 24 de Agosto de 2008 03:45 p.m.
Para: [email protected]
Asunto: [puntonet] Re: RE: [puntonet] Creación de un servicio que "escucha"
la llegada de archivos a una carpeta

Carlos, cuando monitoreas "a mano" como resolves la diferencia entre un
archivo que todavia esta subiendo o que ya subio? 

Yo he tenido problemas con eso y para evitarlos use mecanismos como: "si en
4 pollings sucesivos no cambio de tamanio, entonces debe estar completo..." 

Obviamente tampoco FSW resuelve bien esto de hecho empeora las cosas...pero
al pasar a algo manual, de todos modos hay que tener en cuenta esas cosas y
seria interesante saber como hiciste en tu caso...

Gracias.

Gustavo.

2008/8/23 Carlos Peix <[EMAIL PROTECTED]>

Hola Pedro,

La recomendación de Daniel es correcta pero mi experiencia con el
FileSystemWatcher no fue buena. Sospecho que debe ser una solucion apta para
bajo trafico.

Yo hice lo mismo que vos, en mi caso tenia que registrar en una base de
datos las novedades sobre la carpeta. Encontre problemas cuando el cliente
me descompactaba un ZIP con 4000 archivos, se me perdian eventos.

En definitiva, sugiero que hagas pruebas y que evalues otras opciones para
comparar, por ejemplo, monitorear la carpeta "a mano" y mover los archivos
procesados. El sistema de eventos que usa FSW, en mi opinion, no es
confiable.

Saludos

Carlos Peix
[EMAIL PROTECTED]
tel: 4257-4622
cel: 15-4406-7571

-----Mensaje original-----
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Pedro
Latasa
Enviado el: Sábado, 23 de Agosto de 2008 09:53 a.m.
Para: [email protected]
Asunto: [puntonet] Creación de un servicio que "escucha" la llegada de
archivos a una carpeta


Hola. Saludos a todos y gracias por su tiempo.
Quiero hacer un servicio que esté "escuchando" una carpeta.
Al localizar un archivo que ha llegado a esa carpeta el servicio debe firmar
digitalmente ese archivo y dejarlo en otra carpeta.

La acción de firmar digitalmente el archivo la tengo solucionada.
Mi problema viene a la hora de crear el servicio y "escuchar"
continuamente esa carpeta.
Por lo poco que he visto de servicios puedo crear un tipo de proyecto y en
el realiza una serie de acciones, pero, no tengo claro cómo el servicio va a
estar siempre "escuchando" una carpeta y obrar en consecuencia.

Gracias a todos por el interés.

--

Un saludo.
--------------------------------------------------
Pedro Latasa
Formación y Desarrollo
Email: [EMAIL PROTECTED]
--------------------------------------------------





 



__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 3382 (20080823) __________

ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com

Responder a