He pasado por IStorage, Microsoft Compound File Spec, ArcObjects deserialization, etc. tratando de detectar la versión del archivo .lyr.
Al usar ArcObjects, puedo acceder a las propiedades de capa, fuente de datos, extensión, etc., pero la propiedad documentVersion de LayerFileClass siempre informa 'esriArcGISVersion10' en los archivos de capa 9.3.
ILayerFile l = new LayerFileClass();
l.Open(fileName);
LayerFileClass t = (LayerFileClass)l;
string version = t.DocumentVersion.ToString();
Cualquier ayuda es apreciada.
Tenga en cuenta esta publicación del foro crujiente de 2007.
arcobjects
arcmap
válvula de Londres
fuente
fuente
Respuestas:
Una vez que se carga un archivo de capa, es la versión actual a medida que la apertura lo actualiza. La propiedad DocumentVersion existe únicamente para establecer una versión para guardar en una versión anterior con la clase LayerFile.
La versión real del documento no se escribe en un archivo de capa. La única información de versión escrita es la versión de persistencia interna del objeto. Esta información se puede extraer a través del almacenamiento estructurado, pero necesitaría una búsqueda de este número de versión para cada tipo de capa posible (y también necesitaría extraer el tipo de capa guid para incluso indicar el tipo de capa).
fuente