IStorage、Microsoft Compound File Spec、ArcObjectsの逆シリアル化などを実行して、.lyrファイルのバージョンを検出しようとしました。
ArcObjectsを使用して、レイヤープロパティ、データソース、範囲などを取得できますが、LayerFileClassのdocumentVersionプロパティは、9.3レイヤーファイルの「esriArcGISVersion10」を常に報告します。
ILayerFile l = new LayerFileClass();
l.Open(fileName);
LayerFileClass t = (LayerFileClass)l;
string version = t.DocumentVersion.ToString();
どんな助けでもありがたいです。
2007年からのこの無愛想なフォーラム投稿に注意してください。
.NETとJavaでは異なる結果が得られますか?
—
カークカイケンダル2012年
LayerFileClassの代わりにMemoryBlobStreamClassを使用してみましたか?IMemoryBlobStream.LoadFromFileでlyrファイルを開き、IDocumentVersionにキャストします。
—
カークカイケンダル
REコメント2:試してみました-8.3、9 / 9.1、9.2、9.3レイヤーファイルのesriArcGISVersion10を取得しました。REコメント1:Java ......?あれは何でしょう?;) ご協力いただきありがとうございます。それは可能ではないと思います。
—
valveLondon 2012年
なぜ.lyrファイルのバージョンを検出しようとしているのかを理解していると役立つでしょう。
—
Stephen Quan 2012年
私はバージョンが何であるか知りたいので。
—
valveLondon、2012年