У меня есть промежуточный каталог, который я хочу очистить, если он использовался во время моего сценария. Код прост:
if (Directory.Exists(_stagingDir) &&
Directory.EnumerateFileSystemEntries(_stagingDir).Any())
{
Directory.Delete(_stagingDir, true);
}
Иногда происходит сбой при исключении ввода-вывода, что «Каталог не пустой». Разве это не имеет значения, если я рекурсивно удаляю все элементы внутри (что должен делать true
в этой функции)? Если я вернусь к сценарию на несколько строк и запустлю его снова, он будет работать нормально.
Мое единственное предположение, что EnumerateFileSystemEntries
блокирует файл, но я бы предположил, что получу совершенно другое исключение ("доступ запрещен" или "файл заблокирован" или что-то в этом роде).