Vorrei eseguire il polling del file system per qualsiasi file, sottodirectory, modificato o aggiunto. Tutte le modifiche dovrebbero essere rilevate rapidamente ma senza esercitare pressione sulla macchina. Il sistema operativo è Windows> = Vista, la parte osservata è una directory locale.Come si esegue il polling di un numero elevato di file per le modifiche?
In genere, ricorrere a un FileSystemWatcher, ma questo ha portato a problemi con altri programmi che hanno cercato di vedere lo stesso punto (in primo piano, Windows Explorer). Inoltre, ho sentito che FSW non è realmente affidabile anche per le cartelle locali e con un buffer di grandi dimensioni.
Il problema principale che ho è che il numero di file e directory può essere molto grande (indovinate 7 cifre). Il semplice fatto di eseguire un controllo di tutti i file ogni secondo ha influito notevolmente sulla mia macchina.
La mia prossima idea era di controllare diverse parti dell'intero albero al secondo per ridurre l'impatto complessivo, e magari aggiungere una sorta di euristica, come controllare i file che vengono cambiati frequentemente in una più rapida successione.
Mi chiedo se ci sono schemi per questo tipo di problema, o se qualcuno ha esperienze con questa situazione.
Tutte le sottocartelle sono sotto una singola radice? Che tipo di problemi hai avuto con Windows Explorer? Ecco uno schema per assicurarti di non perdere nessun messaggio. http://stackoverflow.com/questions/4967095/c-predict-file-system-events-on-folder-delete/4968391#4968391 – adrianm
@adrianm: Sì, stessa radice. --- Explorer non ha aggiornato la sua vista quando è stata cambiata una cartella monitorata, suppongo perché FSW ha rubato i suoi eventi. – mafu