我已经尝试过通过IStorage,Microsoft复合文件规范,ArcObjects反序列化等方法来尝试检测.lyr文件版本。
使用ArcObjects,我可以获取Layer属性,数据源,范围等信息,但是LayerFileClass的documentVersion属性始终在9.3 Layer文件上报告“ esriArcGISVersion10”。
ILayerFile l = new LayerFileClass();
l.Open(fileName);
LayerFileClass t = (LayerFileClass)l;
string version = t.DocumentVersion.ToString();
任何帮助表示赞赏。
在.NET和Java中,您得到不同的结果吗?
—
Kirk Kuykendall,2012年
您是否尝试使用MemoryBlobStreamClass而不是LayerFileClass?使用IMemoryBlobStream.LoadFromFile打开lyr文件,然后转换为IDocumentVersion。
—
柯克·库肯达尔
RE评论2:我刚刚尝试过-我得到esriArcGISVersion10的8.3、9 / 9.1、9.2和9.3层文件。RE评论1:Java。那是什么?;) 谢谢你的帮助。我认为这是不可能的。
—
valveLondon 2012年
如果我们了解您为什么尝试检测.lyr文件版本,这可能会有所帮助。
—
Stephen Quan
因为我想知道版本是什么。
—
valveLondon 2012年