J'ai utilisé IStorage, Microsoft Compound File Spec, la désérialisation ArcObjects, etc. en essayant de détecter la version du fichier .lyr.
En utilisant ArcObjects, je peux accéder aux propriétés de la couche, à la source de données, à l'étendue, etc., mais la propriété documentVersion de la LayerFileClass rapporte toujours `` esriArcGISVersion10 '' sur les fichiers de la couche 9.3.
ILayerFile l = new LayerFileClass();
l.Open(fileName);
LayerFileClass t = (LayerFileClass)l;
string version = t.DocumentVersion.ToString();
Toute aide est appréciée.
Notez ce post de forum croustillant de 2007.
arcobjects
arcmap
valveLondres
la source
la source
Réponses:
Une fois qu'un fichier de couches est chargé, c'est la version actuelle car l'ouverture le met à niveau. La propriété DocumentVersion existe uniquement pour définir une version à sauvegarder dans une version précédente avec la classe LayerFile.
La version réelle du document n'est pas écrite dans un fichier de couches. Les seules informations de version écrites sont la version de persistance interne de l'objet. Ces informations peuvent être extraites via un stockage structuré, mais vous auriez besoin d'une recherche de ce numéro de version pour chaque type de couche possible (et vous auriez également besoin d'extraire le guide de type de couche pour même indiquer le type de couche).
la source