2013-03-14 22 views
2

我想將一個組件從一個文件夾移動到另一個已創建的文件夾。Tridion - 將組件移動到另一個文件夾

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」不能分配給 - 它是隻讀的。

我能做些什麼來移動組件?

+0

請考慮在http://tridion.stackexchange.com發佈此問題 – 2013-03-14 12:27:49

回答

4

看起來你正在使用TOM而非TOM.NET

您需要執行你想要的文件夾中粘貼動作拿到新的項目進入

喜歡的東西

objFolder.PasteItem(comp, 1, false) 

第一個參數是你想要的項目粘貼,第二個是枚舉器(EnumTDSCutCopyAction - 1是剪切(移動),0是複製)說,如果你想要複製和粘貼剪切和粘貼,最後一個是你是否想斷言一個獨特的名字。

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

+0

它的工作原理。非常感謝你! – abapero 2013-03-14 15:30:18

1

看來你的GetObject()方法調用有一些缺失的參數。模板手動狀態下的folloowing:

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函數。

另外,請考慮在發佈我們的新外表套上側進一步外表套上問題http://tridion.stackexchange.com

相關問題