Мне нужно иметь возможность перемещать весь каталог за одну атомарную операцию, гарантируя, что ничто другое в системе не сможет подорвать операцию, создав новые файлы после запуска, заблокировав файл и т. Д.
Предположительно, я бы использовал System.IO.Directory.Move (), если каталоги были на одном и том же томе (если Directory.GetDirectoryRoot () одинаков), в противном случае мне пришлось бы создать новый целевой каталог другой том и рекурсивно скопируйте / переместите все каталоги и файлы внизу.
Ничто из того, что я прочитал, не показывает, как получить эксклюзивную блокировку для всего листа каталога в .NET, чтобы это можно было сделать безопасно. Есть ли рекомендуемый / поддерживаемый способ сделать это?