ArcGIS Layer (*. Lyr) dosya sürümünü program aracılığıyla belirleyin


10

IStorage, Microsoft Bileşik Dosya Spec, ArcObjects serisini kaldırma vb. Aracılığıyla .lyr dosya sürümünü tespit etmeye çalışıyorum.

ArcObjects kullanarak, Layer özelliklerine, veri kaynağına, kapsamına vb. Erişebilirim, ancak LayerFileClass'ın documentVersion özelliği her zaman 9.3 Layer dosyalarında 'esriArcGISVersion10'u geri rapor eder.

ILayerFile l = new LayerFileClass();
l.Open(fileName);
LayerFileClass t = (LayerFileClass)l;
string version = t.DocumentVersion.ToString();

Herhangi bir yardım takdir.

Not Bu huysuz forum sonrası 2007 yılından itibaren.


Java vs .NET farklı sonuçlar alıyor musunuz?
Kirk Kuykendall

1
LayerFileClass yerine MemoryBlobStreamClass kullanmayı denediniz mi? Lir dosyasını IMemoryBlobStream.LoadFromFile ile açın, ardından IDocumentVersion öğesine yayınlayın.
Kirk Kuykendall

RE yorum 2: Az önce denedim - 8.3, 9 / 9.1, 9.2 ve 9.3 katman dosyaları için esriArcGISVersion10 alıyorum. RE yorum 1: Java ....? Bu da ne? ;) Yardımın için teşekkürler. Bunun mümkün olduğunu düşünmüyorum.
valveLondon

.Lyr dosyasının sürümünü neden algılamaya çalıştığınızı anlamanız faydalı olabilir mi?
Stephen Quan

1
Çünkü sürümün ne olduğunu bilmek istiyorum.
2019

Yanıtlar:


6

Bir katman dosyası yüklendikten sonra, açılış dosyası yükseltildiğinde geçerli sürümdür. DocumentVersion özelliği yalnızca LayerFile sınıfıyla önceki bir sürüme geri kaydetmek üzere bir sürüm ayarlamak için vardır.

Asıl belge sürümü bir katman dosyasına yazılmaz. Yazılan tek sürüm bilgisi, nesnenin dahili kalıcılık sürümüdür. Bu bilgiler yapılandırılmış depolama yoluyla çıkarılabilir, ancak olası her katman türü için bu sürüm numarasına bakmanız gerekir (ve katman türünü bile söylemek için katman türü kılavuzunu da çıkarmanız gerekir).


Cevabınız için teşekkürler ama biraz kayboldum. 'Olası her katman türü' ile kastedilen - söyleyebildiğim kadarıyla beş olası sürüm var: 8.3, 9 / 9.1, 9.2, 9.3 ve 10.
valveLondon

Katman türleri ile kastediyorum FeatureLayer, RasterLayer, GroupLayer vb.
Craig Williams
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.