Определить путь (местоположение) файла.pet (файл проекта Petrel) через Ocean API?
В плагине Petrel я хочу определить местоположение файла.pet текущего проекта, если он есть. Можно ли использовать вызов Ocean API для получения этой информации?
2 ответа
Посмотрите на PetrelProject.GetProjectInfo( IDataSourceManager dataSourceManager). Он возвращает IProjectInfo, который содержит информацию, которую вы ищете.
Обратите внимание на замечания для IProjectInfo.ProjectStorageDirectory:
"Не создавайте файлы, используя каталог хранилища! Petrel удаляет все файлы, не принадлежащие проекту, при сохранении проекта. Вместо этого используйте OpenCompressedStream(String, FileAccess) / OpenStream(String, FileAccess), который помещает файл, где он не будет удален во время сохранить проект. Во время проекта Сохранить как каталог хранения будет находиться в новом месте проекта."
Хотя это официально не задокументировано, streamName может быть относительным путем (например, "MyyPlugin\MyData.xml"). Petrel создаст каталог для вашего файла (в этом случае%PROJECTDIR%\Ocean\MyyPlugin\MyData.xml)