Ho cercato, ma non riesco a trovare alcuna informazione su quello che sto cercando, se c'è un altro post che già va oltre questo allora mi scuso.FileSystemWatcher utilizzato per la visualizzazione di cartella/file aperti
Sono in cerca di aiuto con il codice che monitorerà una cartella specifica per quando la cartella viene aperta da un'altra persona o quando viene aperto un file sotto detta cartella. A questo punto posso vedere quando un utente apre e modifica qualsiasi file, ma se solo aprono il file per vederlo, non lancia un evento nemmeno quando aggiungo LastAccessed. Qualsiasi informazione o aiuto sarebbe apprezzato.
nome della cartella è C: \ Junk
codice in C# 4.0:
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public static void Run()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\";
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "junk";
// Add event handlers.
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
watcher.IncludeSubdirectories = true;
watcher.EnableRaisingEvents = true;
// Wait for the user to quit the program.
Console.WriteLine("Press \'q\' to quit the sample.");
while (Console.Read() != 'q') ;
}
// Define the event handlers.
private static void OnChanged(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
// Specify what is done when a file is renamed.
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}
Se il nome della cartella è C: \ JUNK, perché non lo si inserisce nella proprietà Path? la proprietà Filter viene utilizzata per lo screening di file e non cartelle – Steve
@Steve - Per il tuo suggerimento, ho cambiato il mio codice ma non si attiva ancora all'apertura della cartella. – Saren
Prova il driver del filtro del filesystem per tracciare questo tipo di modifiche. Altre varianti non funzionano bene. –