1

クライアントオブジェクトモデルとのSharePointにサブフォルダーを作成する必要があります。親フォルダーが存在します。これは私のコードですが、このエラーが発生しました。

ファイル名が無効です。指定したファイル名は使用できませんでした。既存のファイルまたはディレクトリの名前であるか、ファイルにアクセスする権限がない可能性があります。

            ContentTypeCollection listContentTypes = list.ContentTypes;
            clientContext.Load(listContentTypes, types => types.Include
                             (type => type.Id, type => type.Name,
                             type => type.Parent));

            var result = clientContext.LoadQuery(listContentTypes.Where
              (c => c.Name == "Folder"));

            clientContext.ExecuteQuery();

            ContentType folderContentType = result.FirstOrDefault();

            ListItemCreationInformation newItem = new ListItemCreationInformation();
            newItem.UnderlyingObjectType = FileSystemObjectType.Folder;
            newItem.FolderUrl = @"http://mysite/sites/org" + "/" + listName;
            if (!folderName1.Equals(string.Empty))
            {
                newItem.FolderUrl += "/" + folderName1;
            }
            newItem.LeafName = folderName2;
            ListItem item = list.AddItem(newItem);
            item["ContentTypeId"] = folderContentType.Id.ToString();
            item["Title"] = folderName2;
            item.Update();
            clientContext.Load(list);
            clientContext.ExecuteQuery();
4

1 に答える 1

0

フォルダーを作成する必要がある場合は、次のコードを使用してみてください。

        using (var clientContext = new ClientContext(@"http://server"))
        {
            var web = clientContext.Web;
            var lst = web.Lists.GetByTitle("CheckDocLib");
            var fld1 = lst.RootFolder.Folders.Add("FirstLevel1");
            var fld2 = fld1.Folders.Add("SecondLevel1");
            fld1.Update();
            fld2.Update();
            clientContext.ExecuteQuery();
        }
于 2012-07-13T11:09:05.770 に答える