Кажется, я нашёл причину ошибки. У меня на диске D:\ имеется одна скрытая папка, доступ к которой ограничивается системой. Именно поэтому при попытке чтения этой папки вылетает exception. Теперь вопрос в следующем: как программно мне отлавливать папки, доступ к которым ограничивается? Использовать try..catch или есть иной способ реализации?
upd: Решил проблему. Метод canExecute() почему-то не помог, однако заметил, что если метод listFiles() передаёт null, то чтение данной папки невозможно, поэтому просто выходим из метода.