在父目录和子目录之间切换工作空间

想打开子目录中的一个shp数据,处理后的结果写到父目录中,如何进行工作空间的切换。
string childpath="workspace\\temp";
IWorkspaceFactory pWsFactory = new ShapefileWorkspaceFactoryClass();
IWorkspace pWorkSpace = pWsFactory.OpenFromFile(childpath, 0);

//dosomething

string parentpath="workspace";
pWsFactory = new ShapefileWorkspaceFactoryClass();
IWorkspace pWorkSpace = pWsFactory.OpenFromFile(parentpath, 0);

//dosomething
当使用相对路径时,打开子目录没问题,但是打开父目录时,在
IWorkspace pWorkSpace = pWsFactory.OpenFromFile(parentpath, 0)报错,错误信息为没找到database,如果都采用绝对路径,则是可以的。
为什么会产生这种错误,如果工作空间之间有从属,必须使用绝对路径吗?这种从属之间的规则是什么样的?
已邀请:

石羽

赞同来自:

这个问题其实不是ArcGIS的问题,是相对路径的问题。既然是相对的,那以什么为基准呢?你认为的那个基准是正确的么?你的代码大概是在执行"workspace\\temp\\workspace"这个路径

jiushidt - AE使用者

赞同来自:

发现问题所在了,使用第一个数据的时候,调用了IConversionOp来进行栅格转矢量,调用完这个方法,基准路径的位置就发生变化了,定位到该目录下的一个子目录中,导致之后识别相对路径错误。之后采取了绝对路径的方式即可。

要回复问题请先登录注册