Documente Academic
Documente Profesional
Documente Cultură
Practica. 01
Utilizar la clase FileSystemWatcher para inspeccionar y notificar los cambios ocurridos en la carpeta
especial MisDocumentos
Pasos:
1.
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.
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
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.