Lập trình xác định phiên bản tệp ArcGIS Layer (*. Lyr)


10

Tôi đã trải qua IStorage, Microsoft Compound File Spec, ArcObjects deserialization, v.v ... đang cố gắng phát hiện phiên bản tệp .lyr.

Sử dụng ArcObjects, tôi có thể nhận được các thuộc tính Lớp, nguồn dữ liệu, phạm vi, v.v., nhưng thuộc tính documentVersion của LayerFileClass luôn báo cáo lại 'esriArcGISVersion10' trên các tệp Lớp 9.3.

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

Bất kỳ trợ giúp được đánh giá cao.

Lưu ý bài viết diễn đàn độc hại này từ năm 2007.


Bạn có nhận được kết quả khác nhau trong .NET vs java không?
Kirk Kuykendall

1
Bạn đã thử sử dụng MemoryBlobStreamClass thay vì LayerFileClass chưa? Mở tệp lyr bằng IMemoryBlobStream.LoadFromFile, sau đó chuyển sang IDocumentVersion.
Kirk Kuykendall

Nhận xét RE 2: Tôi vừa thử - Tôi nhận được esriArcGISVersion10 cho các tệp lớp 8.3, 9 / 9.1, 9.2 và 9.3. Nhận xét RE 1: Java ....? Cái gì vậy ;) Cảm ơn bạn đã giúp đỡ. Tôi không nghĩ rằng nó có thể.
vanLondon

Nó có thể hữu ích nếu chúng tôi hiểu lý do tại sao bạn đang cố gắng phát hiện phiên bản tệp .lyr?
Stephen Quan

1
Bởi vì tôi muốn biết phiên bản là gì.
vanLondon

Câu trả lời:


6

Khi một tệp lớp được tải, đó là phiên bản hiện tại khi mở nâng cấp nó. Thuộc tính DocumentVersion chỉ tồn tại để đặt phiên bản lưu lại thành phiên bản trước với lớp LayerFile.

Phiên bản tài liệu thực tế không được ghi vào tệp lớp. Thông tin phiên bản duy nhất được viết là phiên bản lưu giữ nội bộ của đối tượng. Thông tin này có thể được trích xuất thông qua lưu trữ có cấu trúc nhưng bạn cần tra cứu số phiên bản này cho mọi loại lớp có thể (và bạn cũng cần trích xuất hướng dẫn loại lớp để thậm chí cho biết loại lớp).


Cảm ơn câu trả lời nhưng tôi hơi lạc lõng với nó. Nghĩa là gì 'tất cả các loại lớp có thể' - như xa như tôi có thể nói có năm phiên bản thể: 8.3, 9 / 9.1, 9.2, 9.3 và 10
valveLondon

Theo loại lớp, ý tôi là FeatureLayer, RasterLayer, GroupLayer, v.v.
Craig Williams
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.