Иногда после запуска этого кода не остается каталога «foo»:
string folder = Path.Combine(Path.GetTempPath(), "foo");
if (!Directory.Exists(folder))
Directory.CreateDirectory(folder);
Process.Start(@"c:\windows\explorer.exe", folder);
Thread.Sleep(TimeSpan.FromSeconds(5));
Directory.Delete(folder, false);
Directory.CreateDirectory(folder);
Кажется, проводник Windows сохраняет ссылку на папку, поэтому последний CreateDirectory не имеет ничего общего, но тогда исходная папка удаляется. Как я могу исправить код?
РЕДАКТИРОВАТЬ: Мне жаль, что мой вопрос не был ясен. Моя цель - создать пустой каталог "foo". Если каталог уже существует, я удаляю его и создаю заново. Проблема в том, что если проводник Windows просматривает каталог, вызов CreateDirectory иногда завершается с ошибкой. Никаких исключений не возникает; каталог просто не создается.
Приведенный выше код воспроизводит проблему на моем компьютере. Только последние две строки принадлежат моему реальному приложению. Предыдущие строки настроены. Всегда ли существует «foo» после запуска кода? Это не так в половине случаев на моем компьютере.
На данный момент я вручную удаляю каждый файл и подкаталог foo.