Passei por IStorage, Microsoft Compound File Spec, desserialização do ArcObjects etc. tentando detectar a versão do arquivo .lyr.
Usando o ArcObjects, posso acessar as propriedades da camada, a fonte de dados, a extensão etc., mas a propriedade documentVersion do LayerFileClass sempre reporta 'esriArcGISVersion10' nos arquivos da camada 9.3.
ILayerFile l = new LayerFileClass();
l.Open(fileName);
LayerFileClass t = (LayerFileClass)l;
string version = t.DocumentVersion.ToString();
Qualquer ajuda é apreciada.
Observe esta postagem no fórum de 2007.
arcobjects
arcmap
valveLondon
fonte
fonte
Respostas:
Depois que um arquivo de camada é carregado, a versão atual é a atualizadora. A propriedade DocumentVersion existe apenas para definir uma versão para salvar em uma versão anterior com a classe LayerFile.
A versão real do documento não é gravada em um arquivo de camada. As únicas informações de versão gravadas são a versão de persistência interna do objeto. Essas informações podem ser extraídas por meio de armazenamento estruturado, mas você precisa procurar esse número de versão para cada tipo de camada possível (e também precisa extrair o guia de tipo de camada para informar até o tipo de camada).
fonte