Non posso scrivere file in queste cartelle perchè alcune di loro sono soggette a polling da parte di processi a me sconosciuti.
Ho messo in piedi un servizio di pulizia automatico che consenta di personalizzare la ricerca dei file o delle cartelle da archiviare o eliminare.
L'input principale è una tabella che contiene l'elenco di tutti i path da monitorare, ognuno con una propria configurazione (regole di archiviazione o pulizia).
Per ogni path è possibile definire se estendere le regole alle sottocartelle oppure no. E' possibile quindi che un path con regole proprie sia una sottocartella di un altro path con regole diverse.
Esempio:
Path1=\\server\folder\Cartella001 (con flagEspandiRegoleASottocartelle=True)
Path2=\\server\folder\Cartella001\sottocartellaXX\ YYYY (con flagEspandiRegoleASottocartelle=True)
quando effettuo il parse delle cartelle del server devo essere in grado di capire che \\server\folder\Cartella001\sottocartellaXX\YYYY\Z ZZZ\HHHH deve ereditare le regole di Path2 e non di Path1.
Per fare questo ho creato un algoritmo in cui mi costruisco l'albero dei path censiti in tabella (un albero per ogni path che non sia una sottocartella di un altro path in tabella).
Ipotizziamo che \\server\CartellaCondivisa001 sia \\server\folder\Cartella001\sottocartellaXX e che un utente abbia creato delle regole per \\server\CartellaCondivisa001.
In questo caso devo essere in grado di capire che le regole da applicare siano quelle di Path1.
Avrei altre strade più complesse, tipo:
- Su ogni server installo un servizio che prenda in input un path e mi dice se è una share di rete + info varie.
- Effettuo la ricerca direttamente su ogni server (le ricerche potrebbero essere pesanti, questo allegerirebbe il traffico di rete).
Ovviamente se riesco a risolverlo con un'unica applicazione e con un piccolo sforzo è meglio.