Tridion - 将组件移动到另一个文件夹

时间:2013-03-14 12:11:24

标签: tridion tridion2009

我想将一个组件从一个文件夹移动到另一个已创建的文件夹。

while (textReader.Read())
{
    textReader.MoveToElement();
    Component comp = tdse.GetComponent(textReader.GetAttribute("ID"), constant_Publication, true, -1);
}

我尝试寻找comp.Move,但它不会退出。 另外,我在comp.Info.Path看到了路径,但是如果我尝试修改它,我有以下错误:

  

错误7无法将属性或索引器'Tridion.ContentManager.Interop.TDS._Info.Path'分配给 - 它是只读的。

如何移动组件?

2 个答案:

答案 0 :(得分:4)

看起来你正在使用TOM而不是TOM.NET

您需要使用要将新项目添加到

的文件夹执行粘贴操作

这样的东西
objFolder.PasteItem(comp, 1, false)

第一个参数是您要粘贴的项目,第二个参数是枚举器(EnumTDSCutCopyAction - 1被剪切(移动),0是复制),以表示您是否要复制并粘贴剪切和粘贴,最后一个是你是否要声明一个唯一的名称。

在TOM.NET中有RepositoryLocalObject.Move()方法。

答案 1 :(得分:1)

看来你的GetObject()方法调用有一些缺少的参数。模板手册说明了以下内容:

Public Function GetObject( ByVal URI As String, ByVal mode As TDSDefines.EnumOpenMode, Optional ByVal contextPublication As Variant = TDSDefines.URINULL, Optional ByVal filter As TDSDefines.XMLReadFilter = XMLReadNull ) As Object

但是,您传入的第二个参数似乎是发布ID,而不是EnumOpenMode。将“OpenModeEditWithFallback”作为函数的第二个参数传递,以使组件处于写入模式,然后您应该可以使用它上面的Move函数。

另外,请考虑在我们新的Tridion方http://tridion.stackexchange.com

上发布更多Tridion问题