FAQ
ワークスペースへのアクセス

ナレッジ番号:5282 | 登録日:2023/07/26 | 更新日:2023/12/28

概要

このサンプルは、ファイル ジオデータベース、パーソナル ジオデータベース、シェープファイルのワークスペースにアクセスする方法を示しています。ワークスペースとは、ジオデータベース、またはシェープファイルを含むフォルダーです。ワークスペースへアクセスするにはフォーマットに応じた WorkspaceFactory のサブクラスをインスタンス化します。WorkspaceFactory のサブクラスは★関連ナレッジがみつかりませんでした★シングルトンなので、.NET の場合 Activator.CreateInstance メソッドでインスタンス化します。引数には WorkspaceFactory の ProgID を元に作成した Type オブジェクトを指定します。ワークスペースのフォーマットに応じて指定する ProgID は異なります。

ArcSDE ジオデータベースのワークスペースへアクセスする方法はこちらを参照してください。

サンプル コード

ファイル ジオデータベースへのアクセス

ファイル ジオデータベース(C:\myData\myFGDB.gdb)ワークスペースにアクセスするサンプルです。

        String path = @"C:\myData\myFGDB.gdb";
        IWorkspace pWorkspace;
        Type factoryType = System.Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory");
        IWorkspaceFactory pWorkspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
        pWorkspace = pWorkspaceFactory.OpenFromFile(path, 0);
        System.Diagnostics.Debug.Print(pWorkspace.PathName);
        Dim path As String = "C:\myData\myFGDB.gdb"
        Dim pWorkspace As IWorkspace
        Dim factoryType As Type = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory")
        Dim pWorkspaceFactory As IWorkspaceFactory = CType(Activator.CreateInstance(factoryType), IWorkspaceFactory)
        pWorkspace = pWorkspaceFactory.OpenFromFile(path, 0)
        Debug.Print(pWorkspace.PathName)

パーソナル ジオデータベースへのアクセス

パーソナル ジオデータベース(C:\myData\myPGDB.mdb)ワークスペースにアクセスするサンプルです。

        String path = @"C:\myData\myPGDB.mdb";
        IWorkspace pWorkspace;
        Type factoryType = System.Type.GetTypeFromProgID("esriDataSourcesGDB.AccessWorkspaceFactory");
        IWorkspaceFactory pWorkspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
        pWorkspace = pWorkspaceFactory.OpenFromFile(path, 0);
        System.Diagnostics.Debug.Print(pWorkspace.PathName);
        Dim path As String = "C:\myData\myPGDB.mdb"
        Dim pWorkspace As IWorkspace
        Dim factoryType As Type = Type.GetTypeFromProgID("esriDataSourcesGDB.AccessWorkspaceFactory")
        Dim pWorkspaceFactory As IWorkspaceFactory = CType(Activator.CreateInstance(factoryType), IWorkspaceFactory)
        pWorkspace = pWorkspaceFactory.OpenFromFile(path, 0)
        Debug.Print(pWorkspace.PathName)

シェープファイルへのアクセス

シェープファイル ワークスペース(=フォルダ)(C:\myData\myShapefiles)にアクセスするサンプルです。

        String path = @"C:\myData\myShapefiles";
        IWorkspace pWorkspace;
        Type factoryType = System.Type.GetTypeFromProgID("esriDataSourcesFile.ShapefileWorkspaceFactory");
        IWorkspaceFactory pWorkspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
        pWorkspace = pWorkspaceFactory.OpenFromFile(path, 0);
        System.Diagnostics.Debug.Print(pWorkspace.PathName);
        Dim path As String = "C:\myData\myShapefiles"
        Dim pWorkspace As IWorkspace
        Dim factoryType As Type = Type.GetTypeFromProgID("esriDataSourcesFile.ShapefileWorkspaceFactory")
        Dim pWorkspaceFactory As IWorkspaceFactory = CType(Activator.CreateInstance(factoryType), IWorkspaceFactory)
        pWorkspace = pWorkspaceFactory.OpenFromFile(path, 0)
        Debug.Print(pWorkspace.PathName)

スタンドアロン テーブルへのアクセス

スタンドアロン テーブル(C:\myData\myExcel.xls)にアクセスするサンプルです。

        String path = @"C:\myData\myExcel.xls";
        IWorkspace pWorkspace;
        Type factoryType = System.Type.GetTypeFromProgID("esriDataSourcesOleDB.ExcelWorkspaceFactory");
        IWorkspaceFactory pWorkspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
        pWorkspace = pWorkspaceFactory.OpenFromFile(path, 0);
        System.Diagnostics.Debug.Print(pWorkspace.PathName);
        Dim path As String = "C:\myData\myExcel.xls"
        Dim pWorkspace As IWorkspace
        Dim factoryType As Type = Type.GetTypeFromProgID("esriDataSourcesOleDB.ExcelWorkspaceFactory")
        Dim pWorkspaceFactory As IWorkspaceFactory = CType(Activator.CreateInstance(factoryType), IWorkspaceFactory)
        pWorkspace = pWorkspaceFactory.OpenFromFile(path, 0)
        Debug.Print(pWorkspace.PathName)

備考

その他のフォーマットにアクセスするための WorkspaceFactoryProgID の指定方法は、以下のヘルプ トピックを参照してください。

メタデータ

種類

製品