IStorage, Microsoft Compound File Spec, ArcObjects deserialization 등을 통해 .lyr 파일 버전을 감지하려고했습니다.
ArcObject를 사용하면 Layer 속성, 데이터 소스, 범위 등을 얻을 수 있지만 LayerFileClass의 documentVersion 속성은 항상 9.3 Layer 파일에서 'esriArcGISVersion10'을 다시보고합니다.
ILayerFile l = new LayerFileClass();
l.Open(fileName);
LayerFileClass t = (LayerFileClass)l;
string version = t.DocumentVersion.ToString();
도움을 주시면 감사하겠습니다.
2007 년 의이 거친 포럼 게시물에 주목 하십시오 .
.NET과 java에서 다른 결과를 얻습니까?
—
Kirk Kuykendall
LayerFileClass 대신 MemoryBlobStreamClass를 사용해 보셨습니까? IMemoryBlobStream.LoadFromFile을 사용하여 lyr 파일을 연 다음 IDocumentVersion으로 캐스트하십시오.
—
Kirk Kuykendall
RE comment 2 : 방금 시도했습니다-8.3, 9 / 9.1, 9.2 및 9.3 레이어 파일에 대해 esriArcGISVersion10을 얻습니다. RE 의견 1 : 자바 ....? 그게 뭐야? ;) 당신의 도움을 주셔서 감사합니다. 나는 그것이 가능하지 않다고 생각합니다.
—
valveLondon
.lyr 파일 버전을 감지하려는 이유를 이해하면 도움이 될 것입니다.
—
Stephen Quan
버전이 무엇인지 알고 싶습니다.
—
Valve 런던