关于AE的IRasterDataset.Copy问题
语言是C#,部分代码如下:public static void generate_random_image(string FileFullName)
{
IWorkspace pWS;
IRasterDataset p_RD;
IRasterDataset p_CR;
string sPath=FilePath(FileFullName);
string sName=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))
{
IDataset pDS = (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例程里的Raster Editor里可以找到。OpenRasterDataset(sPath,"temp_random.tif" )的目的是打开sPath下
的temp_random.tif,只有打开之后才能执行删除操作。
补充:企业软件 , 地理信息系统