如何访问不需要的保存文件名并删除它?

时间:2014-05-25 08:21:36

标签: c++ visual-studio-2010 visual-c++ arcgis

我需要按固定阈值过滤光栅图像。所以我使用ILogicalOp函数。每当我使用它们时,输出文件将保存在工作区中,由于我的大型数据库,这是不需要的。保存发生在rasOut[i] = RMath.LessThan(inputRas[i], cons01)之后。我怎么能阻止这个?或者如何获取保存的文件名并删除它?任何意见都会得到赞赏吗?

private IGeoDataset[] CalcColdThreshold(IGeoDataset[] inputRas)
{
    IGeoDataset[] rasOut = new IGeoDataset[inputRas.Length];
    IGeoDataset emptyRas=null;
    ILogicalOp RMath;
    RMath = new RasterMathOpsClass();
    IRasterAnalysisEnvironment env;
    env = (IRasterAnalysisEnvironment)RMath;
    IWorkspaceFactory workspaceFactory = new RasterWorkspaceFactoryClass();
    IWorkspace workspace = workspaceFactory.OpenFromFile(System.IO.Path.GetFullPath(workSpace_save.Text), 0);
    env.OutWorkspace = workspace;
    IRasterMakerOp Rmaker = new RasterMakerOpClass();
    IGeoDataset cons01;
    Threshold_value = 15000;
    cons01 = Rmaker.MakeConstant(Threshold_value, false);
    for (int i = 0; i < inputRas.Length; i++)
    {
        rasOut[i] = RMath.LessThan(inputRas[i], cons01);
    } 
    return rasOut;
}

1 个答案:

答案 0 :(得分:0)

(免责声明:我实际上并不是一名C ++程序员,只是试图提供一些指导来让你继续前进,因为似乎没有人有任何答案。)(从评论转换而来)

IScratchWorkspaceFactory界面听起来会像你想要的那样 - 而不是使用workspace创建IWorkspaceFactory.OpenFromFile变量,而是尝试创建一个临时工作空间?根据文档,当您的应用程序退出时,它将自动清理。

请记住为最终输出使用不同的工作区。 :)