DirectoryNotFoundException - это ошибка в вашем коде, вы делаете что-то не так с вашим путем. UnauthorizedAccessException достаточно распространен, некоторые каталоги вы не можете прочитать, даже с правами администратора. Например, информация о системном томе c: \ хранит данные о точках восстановления, скрытые от всех.
Обратите внимание на DirectoryInfo.Attributes. Избегайте повторения в любой каталог, имеющий атрибуты System и Hidden. Это позволит избежать подавляющего большинства исключений безопасности. Для остальных требуется GetAccessControl (), чтобы проверить ACL и убедиться, что у пользователя есть права на чтение. Быстрое исправление такого неуклюжего кода ловит исключение.