Przeszedłem przez IStorage, Microsoft Compound File Spec, ArcObjects deserializację itp. Próbowałem wykryć wersję pliku .lyr.
Za pomocą ArcObjects mogę uzyskać informacje o właściwościach warstwy, źródle danych, zakresie itp., Ale właściwość documentVersion LayerFileClass zawsze zgłasza „esriArcGISVersion10” w plikach 9.3 warstw.
ILayerFile l = new LayerFileClass();
l.Open(fileName);
LayerFileClass t = (LayerFileClass)l;
string version = t.DocumentVersion.ToString();
Każda pomoc jest mile widziana.
Zwróć uwagę na ten chrupiący post na forum z 2007 roku.
arcobjects
arcmap
klapa Londyn
źródło
źródło
Odpowiedzi:
Po załadowaniu pliku warstwy jest to bieżąca wersja, ponieważ otwieranie go aktualizuje. Właściwość DocumentVersion istnieje wyłącznie w celu ustawienia wersji do zapisywania z powrotem do poprzedniej wersji z klasą LayerFile.
Rzeczywista wersja dokumentu nie jest zapisywana do pliku warstwy. Jedyne zapisane informacje o wersji to wewnętrzna wersja trwałości obiektu. Informacje te można wyodrębnić za pomocą pamięci strukturalnej, ale trzeba będzie wyszukać ten numer wersji dla każdego możliwego typu warstwy (trzeba też wyodrębnić przewodnik typu warstwy, aby nawet powiedzieć typ warstwy).
źródło