Даже при использовании проводника это сообщение иногда отображается (по крайней мере, для меня). Как насчет удаления файлов, а затем удалить папку?
string[] files = Directory.GetFiles(some_path, "", SearchOption.AllDirectories);
foreach (string pathFile in files)
{
File.Delete(pathFile);
}
Directory.Delete(some_path);
вы можете использовать SearchOptions, если у вас есть субфоллеры, но если нет, тогда просто используйте
string[] files = Directory.GetFiles(some_path);
Надеюсь, это поможет.
EDIT
Эта проблема возникает по многим причинам (например, MS), но я думаю, что основными являются: потому что папка повреждена или какой-то процесс блокирует ее и предотвращает удаление.
Не элегантным решением может быть: сначала удалите файлы, затем подпапки, а на последнем шаге удалите основную папку.