Что означает код HRESULT 0x80030002 (STG_E_FILENOTFOUND)?

 
Предыдущий Следующий
STG_E_INVALIDFUNCTION STG_E_PATHNOTFOUND

STG_E_FILENOTFOUND

Какой объект может отсутствовать

STG_E_FILENOTFOUND возвращается, когда Structured Storage не находит объект. Важно, в каком пространстве имён выполнялся поиск. На границе файловой системы отсутствовать может сам compound file; внутри открытого файла — storage или stream по имени. Внешний документ может быть допустимым, но не содержать внутренний поток, ожидаемый приложением.

IStorage::OpenStorage документирует этот результат для отсутствующего дочернего хранилища. Подобное бывает, если приложение, add-in или converter предполагает наличие необязательного потока, создававшегося старой версией.

Как диагностировать

  • Запишите, отказ возникает при открытии внешнего файла или дочернего storage/stream.
  • Для файла проверьте разрешённый путь и учётную запись; для embedded object изучите дерево хранилища, а не только имя файла.
  • Сравните с исправным файлом той же версии приложения.
  • Считайте поток необязательным только если это задано контрактом формата; не подставляйте посторонние данные.

Ссылки


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