关于AE的IRasterDataset.Copy问题

Crazynaga 2009-06-20 11:07:44
语言是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 ()后还是报错,请问这该怎么办?
...全文
216 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Crazynaga 2009-06-21
  • 打赏
  • 举报
回复
Copy之前Open在是ArcGIS例程里的Raster Editor里可以找到。OpenRasterDataset(sPath,"temp_random.tif" )的目的是打开sPath下
的temp_random.tif,只有打开之后才能执行删除操作。
metaboy 2009-06-20
  • 打赏
  • 举报
回复
在Copy之前open,然后delete,这个啥意思?
是不是先关闭再删除?

2,154

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧