Problemas con el FileSystemWatcher

21/09/2004 - 10:21 por Sebastian Saenz | Informe spam
Hola A todos, tengo un problema con una aplicación
Windows en .NET que supervisa un directorio con el
FileSystemWatcher. En ese directorio se suben ficheros
por FTP y deberia detectar cuando se termina de subir un
fichero para que me de el nombre del fichero. No tengo
manera de hacerlo porque el evento Changed me genera un
evento al principio y el Created, no me genera ningun
evento. Por favor a ver si alguien me puede ayudar con
esto. gracias

Preguntas similare

Leer las respuestas

#6 Alejandro Perez
22/09/2004 - 14:57 | Informe spam
Correcto. Ese codigo va n otro thread para que pueda
seguir respondiendo tu aplicacion mientras el otro
monitorea.
Para que siga monitoreando no se me ocurre nada elegante
ahorita... todavia estoy como dormido :p... prueba por
ahora con un while(true){...monitoreo...} De esta manera
siempre se quedara monitoreando...

Nos vemos
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela




Entiendo eso Alejandro, o sea que todo el codigo que me
pasastes tiene que ir creado en un subProceso?... y otra
cosa, como hago para que me siga moritoriando despues que
ocurre un evento? Porque ocurre un evento, pero luego
termina de monitorear, a que se debe?..
gracias de nuevo


No, te explico. El metodo WaitForChanged lo vas a llamar
de donde tu quieras desde un boton que empezará a
hacer el monitoreo de archivos...o como quieras.. ahora
bien, hay algo importante q debes tomar n cuenta y es lo
siguiente.

El metodo WaitForChanged es un metodo sincrono. Esto
quiere decir que la aplicacion se te va a quedar


congelada
hasta que ocurra el cambio en la carpeta. Para esto


debes
entonces crear un hilo que trabaje fuera del GUI.

Si no haz trabajado con hilos aqui te dejo un link sobre
el trabajo de Multithreading con C#.

http://support.microsoft.com/defaul...cid=kb;en-
us;815804

Cuidate!
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela



Si creo que es la solución, lo voy a probar, muchas
gracias. Pero Alejandro el codigo que me pasastes va
dentro del evento OnChanged que genera la clase
FileSystemWatcher?...
Gracias

Sebastian Saenz


Hola Sebastian. Como estas?

Fijate... se me ocurre que puedes intentarlo con el


metodo
WaitForChanged del filesystemwatcher...

Estuve haciendo algunas pruebas y luego que se termina


de
copiar el archivo a tu carpeta de ftp, ocurre el






evento
changed... de esta manera puedes obtener alli el






nombre
y
hacer lo que deseas... haz algunas pruebas y nos


avisas..
aqui te dejo el codigo q utilic para las pruebas...

result = watcher.WaitForChanged
(System.IO.WatcherChangeTypes.All);
if







(result.ChangeType==System.IO.WatcherChangeTypes.Changed)
{
//Aca se lee el nombre del archivo y dices que
archivo se subio...
listBox1.Items.Add(
result.ChangeType.ToString() + " - " +
result.Name);
listBox1.Refresh();
}

Pude haber filtrado el WaitForChanged a solo


los "Changed"
pero no obtuve el mismo efecto... Prueba de todos


modos..

Bye bye

Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


Hola A todos, tengo un problema con una aplicación
Windows en .NET que supervisa un directorio con el
FileSystemWatcher. En ese directorio se suben








ficheros
por FTP y deberia detectar cuando se termina de subir




un
fichero para que me de el nombre del fichero. No








tengo
manera de hacerlo porque el evento Changed me genera








un
evento al principio y el Created, no me genera ningun
evento. Por favor a ver si alguien me puede ayudar








con
esto. gracias


.



.



.



.



.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida