ArcEngine 调用GP里面的Merge工具

这两天,为ArcEngine中的Merge工具的调试伤头脑筋,明明很简单的事情,就是搞不掂儿。今天忽然想到是否是中文的关系,果然,把中文修改成英文成功了。真是快郁闷死了!

        public static Boolean Merge(String[] inputs, String output)
        {
            Geoprocessor gp = new Geoprocessor();
            gp.OverwriteOutput = true;

            int strSize = inputs.Count();
            String tempStr = """ + inputs[0] + "";  //注意,参数里面的 " 即使没有,也可以运行成功。
                                                     //同时输入参数可以为多个图层,不限定两个。不想相交
                                                     //操作,必须两个图层。一定注意,参数中不能有中文名称
            for (int i = 1; i < strSize - 1; i++)
            {
                tempStr += ";" + inputs[i] + "";
            }
            tempStr += ";" + inputs[strSize - 1] + """;
            MessageBox.Show("input: " + tempStr);
            ESRI.ArcGIS.DataManagementTools.Merge merge = new ESRI.ArcGIS.DataManagementTools.Merge();
            merge.inputs = tempStr;
            merge.output = output;
            try
            {
                gp.Execute(merge, null);
            }
            catch (COMException e)
            {
                string str = "";
                for (int i = 0; i < gp.MessageCount; i++)
                {
                    str += gp.GetMessage(i);

                }
                MessageBox.Show(str);
                return false;
            }

            return true;
        }
原文地址:https://www.cnblogs.com/cglNet/p/6552560.html