循环文件夹级别

-8 tridion tridion-2011

我有文件夹下的组件.

需要遵循什么代码/ codesyntax,循环遍历具有组件的文件夹,以便我可以从不同的组件中提取值.

任何人都可以帮助我.

我使用了以下代码

**Folder compFilter= new Filter(); 
Folder folder=engine.GetObject(webdavurl) as Folder; 
foreach(Component comp in folder.GetItems(CompFilter))**
Run Code Online (Sandbox Code Playgroud)

它无法正常工作.请提出一些解决方案.

Nun*_*res 5

逻辑如下:

  1. 创建一个过滤器,指定您感兴趣的项类型是组件
  2. 从文件夹中获取项目或获取列表项目,具体取决于您需要的信息.如果您只需要标题和ID,则获取列表会更快(返回XML).如果您需要来自项目的其他属性,请使用返回对象的Get Items.

如上所述,如果您告诉我们哪个API 可能会获得代码示例.以上逻辑适用于任何API.

[更新]

请不要使用Filter,这个类在Tridion 2011中被弃用StronglyTypedFilter而不是"家庭".

Session session = engine.GetSession();
string folderUrl = "/my/long/webdav";
OrganizationalItemItemsFilter filter = new OrganizationalItemItemsFilter(session)
                                            {ItemTypes = new[] {ItemType.Component}};

Folder folder = (Folder)session.GetObject(folderUrl);

foreach (Component component in folder.GetItems(filter))
{
    // Do something with the component
}
Run Code Online (Sandbox Code Playgroud)