Ich habe IStorage, Microsoft Compound File Spec, ArcObjects-Deserialisierung usw. durchlaufen und versucht, die .lyr-Dateiversion zu erkennen.
Mit ArcObjects kann ich auf die Layer-Eigenschaften, die Datenquelle, den Umfang usw. zugreifen, aber die documentVersion-Eigenschaft der LayerFileClass meldet immer 'esriArcGISVersion10' für 9.3-Layer-Dateien.
ILayerFile l = new LayerFileClass();
l.Open(fileName);
LayerFileClass t = (LayerFileClass)l;
string version = t.DocumentVersion.ToString();
Jede Hilfe wird geschätzt.
Beachten Sie diesen knusprigen Forumsbeitrag von 2007.
arcobjects
arcmap
ventilLondon
quelle
quelle
Antworten:
Sobald eine Layer-Datei geladen ist, handelt es sich um die aktuelle Version, die beim Öffnen aktualisiert wird. Die DocumentVersion-Eigenschaft dient ausschließlich zum Festlegen einer Version zum Speichern auf eine frühere Version mit der LayerFile-Klasse.
Die eigentliche Dokumentversion wird nicht in eine Layer-Datei geschrieben. Die einzige geschriebene Versionsinformation ist die interne Persistenzversion des Objekts. Diese Informationen können über einen strukturierten Speicher extrahiert werden. Sie benötigen jedoch eine Suche nach dieser Versionsnummer für jeden möglichen Layertyp (und Sie müssen auch die Layertyp-Anleitung extrahieren, um den Layertyp überhaupt zu ermitteln).
quelle