Red de conocimiento informático - Material del sitio web - ¿Cómo escribir un programa en C# para monitorear si los archivos en una carpeta se han agregado, eliminado o modificado?

¿Cómo escribir un programa en C# para monitorear si los archivos en una carpeta se han agregado, eliminado o modificado?

Cree una nueva aplicación de consola, el nombre del proyecto es "FileSystemWatcher", copie el código y podrá usarlo después de la compilación. El código es el siguiente:

using?System;

using?System.Collections.Generic;

using?System.Text;

usando ?System.IO;

usando?System.Security.Permissions;

espacio de nombres?MyFileSystemWatcher

{

público? clase?Watcher

{

público?static?void?Main(string[]?args)

{

Ejecutar() ;

p>

}

[PermissionSetAttribute(SecurityAction.Demand,?Name?=?"FullTrust")]

public?static?void ?Run()

{

cadena[]?args?=?System.Environment.GetCommandLineArgs();

if?(args.Length?! =?2)

{

Console.WriteLine("Uso:?FileSystemWatcher.exe?DirectoryPath");

return;

}

FileSystemWatcher?watcher?=?new?FileSystemWatcher();

watcher.Path?=?args[1];

/*?Set para monitorear los cambios de ?LastWrite? y? LastAccess? en el tiempo, y la creación, eliminación o cambio de nombre de archivos de texto en el directorio. ?*/

watcher.NotifyFilter?=?NotifyFilters.LastAccess?|?NotifyFilters.LastWrite

|?NotifyFilters.FileName?|?NotifyFilters.DirectoryName;

//?Solo monitorear archivos .txt

watcher.Filter?=?"*.txt";

//?Agregar controlador de eventos.

watcher.Changed?+=?new?FileSystemEventHandler(OnChanged);

watcher.Created?+=?new?FileSystemEventHandler(OnChanged);

watcher .Deleted?+=?new?FileSystemEventHandler(OnChanged);

watcher.Renamed?+=?new?RenamedEventHandler(OnRenamed);

//?Iniciar monitoreo.

watcher.EnableRaisingEvents?=?true;

//?Ingrese q para salir del programa.

Console.WriteLine("Presione ?\'q\'? para salir del programa.

");

mientras?(Console.Read()?!=?'q')?;

}

//?Definir controlador de eventos.

private?static?void?OnChanged(object?source,?FileSystemEventArgs?e)

{

//Si el archivo se cambia, crea o elimina , La ruta del archivo se enviará a la consola

Console.WriteLine("File:?"?+?e.FullPath?+?"?"?+?e.ChangeType);

}

privado?static?void?OnRenamed(object?source,?RenamedEventArgs?e)

{

//?Después del archivo se cambia el nombre, tanto la ruta anterior como la nueva se envían a la consola

Console.WriteLine("File:?{0}?renamed?to?{1}",?e.OldFullPath, ?e.FullPath) ;

}

}

}

Instrucciones de uso (ver imagen para más detalles):

1. Abra la ventana cmd, primero ubique el directorio de la carpeta donde se encuentra FileSystemWatcher.exe;

2. Ingrese el nombre del directorio de la carpeta FileSystemWatcher.exe y presione Entrar; >3. El archivo que se está monitoreando. Puede ver los resultados del monitoreo agregando, eliminando o modificando archivos en el directorio de la carpeta

.