Para crear la apliación se ha utilizado MS Visual Studio 2010 con el lenguaje Visual Basic .NET
Creación de una apliación de consola con Visual Studio 2010
Abrimos MS Visual Studio 2010 y creamos un nuevo proyecto Windows, seleccionaremos la plantillaAplicación de consola.
Para usar la clase FileSystemWatcher debemos importar el espacio de nombres System.IO (Imports System.IO) ó bien declarar el namespace completo (Dim Vigilante As New System.IO.FileSystemWatcher())
El código completo es:
Imports System.IO
Module Module1
Sub Main()
' Mostrar en consola el comienzo de la aplicaciónb
Console.WriteLine("Comienza la monitorización")
MonitorizarCarpeta()
' Dejamos la aplicación abierta hasta que se cierre la consola
Console.WriteLine("Para salir pulsar q + Intro")
While Chr(Console.Read()) <> "q"c
End While
End Sub
Public Sub MonitorizarCarpeta()
' Definir variables
Dim Vigilante As New FileSystemWatcher()
' Ruta que vigilaremos
Dim RutaVigilar As String = "C:\Tmp\"
' Ruta a monitorizar
Vigilante.Path = RutaVigilar
' Establece el tamaño (en bytes) del búfer interno para controlar
' la entrada masiva de documentos,
' ver http://msdn.microsoft.com/es-es/library/system.io.filesystemwatcher.internalbuffersize.aspx
Vigilante.InternalBufferSize = 8192
' Inclusion de monitorizacion en Subdirectorios
Vigilante.IncludeSubdirectories = True
' Filtro de monitorización,
' Solo realizaremos acciones sobre archivos pdf
Vigilante.Filter = ("*.pdf")
Vigilante.NotifyFilter = (NotifyFilters.FileName)
' Monitorizar la creación de archivos
AddHandler Vigilante.Created, AddressOf OnChanged
' Otros eventos que se pueden monitorizar
' AddHandler Vigilante.Changed, AddressOf OnChanged
' AddHandler Vigilante.Deleted, AddressOf OnChanged
' AddHandler Vigilante.Renamed, AddressOf OnRenamed
' Esta opción se utiliza en procesos asincrónicos
' para notificar a la aplicación que un proceso ha terminado
Vigilante.EnableRaisingEvents = True
End Sub
Private Sub OnChanged(ByVal source As Object,
ByVal e As FileSystemEventArgs)
' Definir variables
Dim RutaDestino As String ' Destino de los archivos
Dim ArchivoOrigen As String
Dim ArchivoDestino As String
' Establecer valor a las variables
ArchivoOrigen = e.FullPath.ToString
RutaDestino = "C:\ElFosoDelSarlacc\" ' terminado en \
ArchivoDestino = RutaDestino & e.Name
' Se pausa la ejecución de la aplicación 500 ms para que no se colapse
System.Threading.Thread.Sleep(500)
' Movemos los archivos desde la ruta origen (RutaVigilas) a la ruta destino
' Se usa FileSystem.MoveFile del namespace Microsoft.VisualBasic.FileIO
Microsoft.VisualBasic.FileIO.FileSystem.MoveFile
(ArchivoOrigen, ArchivoDestino)
' Notificamos en pantalla de la acción
Console.WriteLine(ArchivoOrigen & " traspasado con exito a "
& ArchivoDestino)
End Sub
End Module
Compilamos la solución y la ejecutamos. Se abrirá una aplicación de consola en espera de que suceda el evento de creacion de documentos pdf en la carpeta origen. Crearemos ó copiaremos archivos pdf en la rutra origen para observar como se van traspasando a la ruta destino que hemos definido.



No hay comentarios:
Publicar un comentario