问题描述
语言是C#,部分代码如下:publicstaticvoidgenerate_random_image(stringFileFullName){IWorkspacepWS;IRasterDatasetp_RD;IRasterDatasetp_CR;stringsPath=FilePath(FileFullName);stringsName=FileName(FileFullName);p_RD=OpenRasterDataset(sPath,sName);pWS=SetRasterWorkspace(sPath);p_CR=(IRasterDataset)p_RD.Copy("temp_random.tif",(IWorkspace)pWS);}第一次调用没问题,但是在第二次调用时,总是会报“未指定的错误”,后来检查了一下程序,发现当存在已temp_random.tif时会报错,所以就在Copy之前加了如下语句,以删掉它:if(File.Exists(tPath)){IDatasetpDS=(IDataset)OpenRasterDataset(sPath,"temp_random.tif");pDS.Delete();pDS=null;}但是当temp_random.tif被当做图层加到MapControl里之后,它就被程序独占了。在重复执行generate_random_image时,由于之前的独占,这个tif图无法被删除,所以运行到pDS.Delete()后还是报错,请问这该怎么办?
解决方案
解决方案二:
在Copy之前open,然后delete,这个啥意思?是不是先关闭再删除?
解决方案三:
Copy之前Open在是ArcGIS例程里的RasterEditor里可以找到。OpenRasterDataset(sPath,"temp_random.tif")的目的是打开sPath下的temp_random.tif,只有打开之后才能执行删除操作。