If you worked with SP on-prem you probably know that some special characters are not allowed in folders names there. In Sharepoint Online however it is possible to use some special characters in folders names:
How to create such folders with special characters programmatically via CSOM? If we will try to do it using the same approach which we used for SP on-prem it will implicitly remove all parts in folder names which come after special characters i.e. in above example abc, def, ghi:
public static ListItem AddFolder(ClientContext ctx, List list, string parentFolderUrl, string folderName) { var lici = new ListItemCreationInformation { UnderlyingObjectType = FileSystemObjectType.Folder, LeafName = folderName.Trim(), FolderUrl = parentFolderUrl }; var folder = list.AddItem(lici); folder["Title"] = lici.LeafName; folder.Update(); ctx.ExecuteQueryRetry(); return folder; }
If we want to create folders with special characters we need to use another CSOM method Folder.AddSubFolderUsingPath:
public static void AddFolderUsingPath(ClientContext ctx, Folder parentFolder, string folderName) { parentFolder.AddSubFolderUsingPath(ResourcePath.FromDecodedUrl(folderName)); ctx.ExecuteQueryRetry(); }
With this method folders with special characters will be created successfully in Sharepoint Online.
No comments:
Post a Comment