“未找到文件”:尝试在库中创建新文件夹时,标题首位为空白

时间:2019-07-26 08:12:38

标签: c# sharepoint scom

我正在尝试在文档库中创建一个新文件夹。实际上,该代码运行良好,但是当新文件夹的标题以空白开头时,出现异常“找不到文件”,并且未创建该文件夹。

我已经尝试对标题进行编码:用"%20""+"代替标题。在这种情况下,将创建文件夹,但该文件夹在标题的第一个位置包含其他字符,例如"+"

我试图通过使用浏览器在SharePoint应用程序中创建文件夹“ blankBefore”-并且它可以工作。该文件夹已创建,看起来像这样的“ blankBefore”。

如果文件夹的标题以空白开头,我可以创建标题为空白的文件夹。

public bool CreateFolder(SharePointNode spParentNode, string strFolderName)
{
    ClientContext localCTX = new ClientContext(spParentNode.ParentSite);
    ConectClient(localCTX);

    Folder newFolder = null;

    var folder = localCTX.Web.GetFolderByServerRelativeUrl(spParentNode.URL);
    localCTX.Load(folder);
    localCTX.Load(folder.Folders);
    Folder newFolder = folder.Folders.Add(strFolderName);
    newFolder.Update();
    localCTX.ExecuteQuery();

    return true;
}

1 个答案:

答案 0 :(得分:0)

Create folder in SharePoint list (SharePoint 2010, 2013, 2016)

using (var clientContext = new ClientContext("http://sp/sites/test"))
            {
                string folderName = "test";
                var list = clientContext.Web.Lists.GetByTitle("ListBase");
                list.EnableFolderCreation = true;

                clientContext.Load(list);
                clientContext.Load(list.RootFolder);
                clientContext.Load(list.RootFolder.Folders);
                clientContext.ExecuteQuery();

                var folderCollection = list.RootFolder.Folders;

                foreach (var folder in folderCollection)
                {
                    if (folder.Name == folderName)
                    {
                        clientContext.Load(folder.Files);
                        clientContext.ExecuteQuery();
                    }
                    else
                    {
                        var itemCreateInfo = new ListItemCreationInformation
                        {
                            UnderlyingObjectType = FileSystemObjectType.Folder,
                            LeafName = folderName
                        };
                        var newItem = list.AddItem(itemCreateInfo);
                        newItem["Title"] = folderName;
                        newItem.Update();
                        clientContext.ExecuteQuery();
                        break;
                    }
                }
            }