Что означает код NTSTATUS 0xC0000103 (STATUS_NOT_A_DIRECTORY)?

 
Предыдущий Следующий
STATUS_FILE_CORRUPT_ERROR STATUS_BAD_LOGON_SESSION_STATE

STATUS_NOT_A_DIRECTORY

STATUS_NOT_A_DIRECTORY означает, что целевое имя существует, но объект не является каталогом, хотя запрошенной операции требовался именно каталог. Это возможно при открытии каталога, разрешении дочернего пути, запросе специфичных для каталога метаданных или использовании параметра создания, требующего объект-каталог.

Типичные причины

  • В параметре конфигурации, где должна быть папка, указан путь к файлу.
  • Компонент пути был заменён файлом, поэтому дальнейший поиск дочернего элемента не может пройти через него.
  • Код пытается создать каталог там, где уже существует обычный файл.
  • Удалённый ресурс или виртуальная файловая система не поддерживает требуемую структуру каталогов или потоков.

Важное различие

STATUS_NOT_A_DIRECTORY не означает отсутствующий путь. Объект найден, а причиной ошибки является его тип. Это также обратное состояние для STATUS_FILE_IS_A_DIRECTORY, которое означает, что запрос только для файла достиг каталога. Запись ожидаемого и фактического типов объекта помогает быстро увидеть несоответствие.

Исправьте путь или выберите операцию, подходящую обнаруженному объекту. Повтор без изменения запроса не поможет, поскольку это детерминированный конфликт типов, а не временная блокировка или ошибка ввода-вывода.

См. обработку открытия файловой системой, правила SMB2 CREATE и справочник NTSTATUS.


Нужно найти другой код? Найти другой код состояния или ошибки.