I'm using the C# client object model to retrieve recursively all doclibs and their folders from a web.
private void LoadSubFolders(Microsoft.SharePoint.Client.Folder SPFolder, ICollection<Folder> folderCollection)
{
clientContext.Load(SPFolder, folder => folder.Folders
.Include(f => f.Name, f => f.ServerRelativeUrl, f => f.ListItemAllFields, f => f.ListItemAllFields.DisplayName)
.Where(f => f.Name != "Forms"));
clientContext.ExecuteQuery();
var currentFolder = new Folder { Name = SPFolder.Name, Path = SPFolder.ServerRelativeUrl };
folderCollection.Add(currentFolder);
foreach (var folder in SPFolder.Folders)
{
LoadSubFolders(folder, currentFolder.Folders);
}
}When I call the "Name" property I get the internal name of the folder, which differs from the display name because of umlauts.
I need to get the "Title".
I tried this:
clientContext.Load(SPFolder, f => f.Name, f => f.ServerRelativeUrl, f => f.ListItemAllFields, f => f.ListItemAllFields.DisplayName); clientContext.ExecuteQuery();
But then I get the following message when accessing the DisplayName:
'SPFolder.ListItemAllFields.DisplayName' threw an exception of type 'Microsoft.SharePoint.Client.ServerObjectNullReferenceException'
See also this question:
Client Object Model get Display name of DocumentLibrary
with umlauts