Credo che la soluzione più semplice sia quella di innestare due cicli, uno dentro l'altro: il ciclo più esterno enumera i file da elaborare, mentre quello più interno si ripete fino a quando l'operazione da eseguire sul file specifico va a buon fine.
Fino a quando si verificano eccezioni nel ciclo più interno, l'operazione viene così ripetuta.
Quando l'operazione va a buon fine o viene abbandonata, si torna nel ciclo esterno che passa eventualmente al file successivo.
Puoi usare forse la proprietà HResult, che dovrebbe essere diversa da caso a caso.
Ciao!![]()