Sunteți pe pagina 1din 2

Programacin VB 2012

Practica. 01
Utilizar la clase FileSystemWatcher para inspeccionar y notificar los cambios ocurridos en la carpeta
especial MisDocumentos
Pasos:
1.

Cree una instancia de la clase FileSystemWatcher que soporte eventos.


Private WithEvents Inspector As New FileSystemWatcher

2.

Asigne a la propiedad Path de la instancia creada la ruta de la carpeta especial Mis Documentos.
Utilice la clase Environment para tal fin.
Inspector.Path = Environment.GetFolderPath( _
Environment.SpecialFolder.Personal)

3.

En la propiedad NotifyFilter, especifique los tipos de sucesos que la clase deba detectar. En este
caso: creacin, acceso, modificacin y nombre de archivo (para cuando se renombre un archivo).
Inspector.NotifyFilter = NotifyFilters.CreationTime Or _
NotifyFilters.LastAccess Or _
NotifyFilters.LastWrite Or _
NotifyFilters.FileName

4.

Habilite la provocacin
EnableRasingEvents.

de

los

eventos

de

cambio

haciendo

True

la

propiedad

Inspector.EnableRaisingEvents = True

5.

Cree una estructura de control para ejecutar la aplicacin durante un tiempo indefinido.
' Se ejecutar hasta que el usuario presione 'q'
While Chr(Console.Read()) <> "q"c
End While

6.

Implemente los controladores de evento para los filtros configurados.


Private Sub CambioCreacionEliminacion(ByVal sender As Object, _
ByVal e As System.IO.FileSystemEventArgs) _
Handles Inspector.Changed, Inspector.Created,
Inspector.Deleted
Console.WriteLine("Archivo: {0} cambio: {1}", e.Name, _
e.ChangeType.ToString)
End Sub
Private Sub Inspector_Renamed(ByVal sender As Object, _
ByVal e As System.IO.RenamedEventArgs) _
Handles Inspector.Renamed
Console.WriteLine("Archivo renombrado de: {0} a {1}", e.OldName, e.Name)
End Sub

7.

A continuacin, se presenta el cdigo completo del caso tratado, el cual incluye informacin para
el usuario.

Imports System.IO
Module Module1
Private WithEvents Inspector As New FileSystemWatcher
Sub Main()
Try
'Obtenemos la ruta fsica de la carpeta especial 'Mis Documentos'
Inspector.Path = Environment.GetFolderPath( _
Environment.SpecialFolder.Personal)
Inspector.NotifyFilter = NotifyFilters.CreationTime Or _
NotifyFilters.LastAccess Or _
1

Programacin VB 2012

NotifyFilters.LastWrite Or NotifyFilters.FileName
Inspector.EnableRaisingEvents = True
Console.WriteLine("Inspeccionando...presiones 'q' para terminar...")
' Se ejecutar hasta que el usuario presione
'q' While Chr(Console.Read()) <> "q"c
End While
Catch ex As Exception
Console.WriteLine(ex.Messag
e) Finally
Console.WriteLine("Presione cualquier tecla para
salir...") Console.Read()
End Try
End Sub
Private Sub CambioCreacionEliminacion(ByVal sender As Object,
_ ByVal e As System.IO.FileSystemEventArgs) _
Handles Inspector.Changed, Inspector.Created,
_
Inspector.Delet
ed
Console.WriteLine("Archivo: {0} cambio: {1}", e.Name, _
e.ChangeType.ToStrin
g)
End Sub
Private Sub Inspector_Renamed(ByVal sender As Object, _
ByVal e As System.IO.RenamedEventArgs)
_ Handles Inspector.Renamed
Console.WriteLine("Archivo renombrado de: {0} a {1}", e.OldName,
e.Name) End Sub
End Module

Luego de efectuar diversos cambios en la carpeta se muestra el siguiente reporte:

Nota:
Puede cambiar las publicaciones en pantalla por una salida a archivo y almacenar la informacin
para efectos de un anlisis posterior, til para trabajos de auditora.

S-ar putea să vă placă și