ЕСЛИ вы перебираете файлы в каталоге и удаляете каждый из них в попытке / отлове, вы можете продолжить работу даже после исключения. Если вы попытаетесь удалить весь каталог, то, если он потерпит неудачу, он потерпит неудачу.
Редактировать: код по запросу
private void DeleteFiles(DirectoryInfo Directory)
{
bool AllFilesDeleted = true;
foreach(FileInfo oFile in Directory.GetFiles())
{
try
{
oFile.Delete();
}
catch (Exception ex) { AllFilesDeleted = false; }
}
foreach (DirectoryInfo oDirectory in Directory.GetDirectories())
{
DeleteFiles(oDirectory);
}
if (AllFilesDeleted)
{
try
{
Directory.Delete();
}
catch (Exception ex){}
}
}