Friday, 16 July 2021

Get all files in all folders and sub folders of a SharePoint online document library recursively using CSOM and CAML

private List<ListItem> GetAllItems( ClientContext Context, List list, List<ListItem>  ListItems)

        {

         

            camlQuery.ViewXml =

@"< View Scope = 'RecursiveAll'>

    < Query >

        <Where>

      </Where>

        <OrderBy>

            <FieldRef Name='ID' />

        </OrderBy>

    </ Query >

</ View >";


            ListItemCollection AllItems = list.GetItems(camlQuery);

            Context.Load(AllItems);

            Context.ExecuteQuery();

            foreach (ListItem item in AllItems)

            {

                if (item.FileSystemObjectType == FileSystemObjectType.File)

                {

                    if(!ListItems.Contains(item))

                        ListItems.Add(item);

                }


                if (item.FileSystemObjectType == FileSystemObjectType.Folder)

                {

                    camlQuery.FolderServerRelativeUrl = item.FieldValues["FileRef"].ToString();

                    GetAllItems(Context, list, ListItems);

                }

            }

                

            return ListItems;

        }

No comments:

Post a Comment