代码之家  ›  专栏  ›  技术社区  ›  Nick Allen

在SiteCore CMS.net中递归删除子项

  •  1
  • Nick Allen  · 技术社区  · 15 年前

    我在SiteCore媒体库中有以下结构

    图片/部门/子部门/产品/

    我想一次删除一个部门代码中的所有图像。目前我有

    Item[] items = database.SelectItems("/sitecore/media library/images/department1//*");            
    
    Sitecore.Data.Engines.DataEngine engine = new Sitecore.Data.Engines.DataEngine(database);
    
    using (new SecurityDisabler())
    {
        foreach (Item item in items)
        {
            engine.DeleteItem(item))
        }
    }
    

    问题是它只删除department1的子图像,而下面没有任何内容?

    1 回复  |  直到 15 年前
        1
  •  7
  •   Alexey Rusakov    15 年前

    数据引擎是一个非常低级的API,没有理由就不能使用它。

    同时删除所有子项很容易:

    item department1=database.getitem(“/sitecore/media library/images/department1”); department1.deleteChildren();

    这将离开department1项,但其下的所有内容都将被删除。