ホーム » ARCGIS » ArcObjectsでOpenFeatureClassを行うとエラー0x80040351

ArcObjectsでOpenFeatureClassを行うとエラー0x80040351

以下を実行するとOpenFeatureClassでエラーが発生
[code]
Geodatabase.IWorkspaceFactory workspaceFactory =
new DataSourcesFile.ShapefileWorkspaceFactoryClass();
Geodatabase.IFeatureWorkspace featureWorkspace = (Geodatabase.IFeatureWorkspace)workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(@"C:\work"), 0);
Geodatabase.IFeatureClass featureClass = featureWorkspace1.OpenFeatureClass(System.IO.Path.GetFileNameWithoutExtension(@"mypoint"));
[/code]

以下を実行すると正しく動作する。違いはディレクトリの階層だけ。
[code]
Geodatabase.IWorkspaceFactory workspaceFactory =
new DataSourcesFile.ShapefileWorkspaceFactoryClass();
Geodatabase.IFeatureWorkspace featureWorkspace = (Geodatabase.IFeatureWorkspace)workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(@"C:\work\test"), 0);
Geodatabase.IFeatureClass featureClass = featureWorkspace1.OpenFeatureClass(System.IO.Path.GetFileNameWithoutExtension(@"mypoint"));
[/code]

問題は明らかにSystem.IO.Path.GetDirectoryNameなのでSystem.IO.Path.GetDirectoryNameにはShapeファイルのフルパスを渡す

[code]
Geodatabase.IWorkspaceFactory workspaceFactory =
new DataSourcesFile.ShapefileWorkspaceFactoryClass();
Geodatabase.IFeatureWorkspace featureWorkspace = (Geodatabase.IFeatureWorkspace)workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(@"C:\work\mypoint.shp"), 0);
Geodatabase.IFeatureClass featureClass = featureWorkspace1.OpenFeatureClass(System.IO.Path.GetFileNameWithoutExtension(@"mypoint"));
[/code]