Ho un programma a thread singolo che elabora cartelle e file in una directory di origine. C'è un modo per bloccare una cartella, con i file al suo interno, all'interno della mia directory sorgente da essere modificata da altri processi mentre il mio programma sta lavorando su di essa? Sto pensando a qualcosa sulla falsariga di mettere una sorta di blocco esclusivo sulla cartella stessa, quindi solo il processo del mio programma può usarlo.C# - Blocco della modifica di una cartella durante l'elaborazione
NOTA:
Non voglio bloccare la directory di origine radice stessa, solo ciò che la cartella (s), nel livello più alto di quella directory, mi potrebbe essere in fase di elaborazione in ogni particolare momento. Voglio ancora essere in grado di consentire ai processi esterni di aggiungere cartelle alla directory di origine, mentre sto elaborando altre cartelle.
UPDATE:
@Yuri - Sì, questo è un programma per Windows, un'applicazione di servizio Windows per essere esatti.
Parte di ciò che rende questo sia impegnativo e necessario è che ho bisogno di ricreare la struttura di qualsiasi cartella che sto elaborando, nella directory di origine, in una directory di destinazione separata. Quindi non posso avere nessun altro processo che modifichi le cartelle e i file mentre il mio programma sta lavorando con loro.
Presumo Windows? –
Mi chiedo se i nuovi metodi di transazione I/O potrebbero aiutare. – user7116
Invece di bloccare la cartella, il tuo programma potrebbe semplicemente scansionare il contenuto una seconda volta per essere sicuro che non ci siano state modifiche esterne da quando hai iniziato (verifica nomi e date dei file) – Justin