Как устранить исключение при загрузке файла в SharePoint с помощью List.RootFolder.Files.Add (C #) - PullRequest
0 голосов
/ 16 октября 2019

Контекст: я пытаюсь загрузить большое количество файлов в библиотеку SharePoint. Я позвоню в библиотеку Library Name здесь. Для простоты я буду пытаться загрузить только один файл в следующем коде. Путь к этому файлу будет C:/Users/UserName/Desktop/Test.txt Я позвоню на сайт SharePoint http://share-internal.CompanyName.com/Section/Subsection

Вот код, который я использую:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.SharePoint.Client;

namespace FilesToSharePointLibrary
{
    class Program
    {
        static void Main(string[] args)
        {
            String fileToUpload = "C:/Users/UserName/Desktop/Test.txt";
            String sharePointSite = "http://share-internal.CompanyName.com/Section/Subsection"; 
            String libraryName = "Library Name";
            String fileName = fileToUpload.Substring(fileToUpload.LastIndexOf("\\") + 1);
            using(ClientContext context = new ClientContext(sharePointSite))
            {
                FileCreationInformation FCInfo = new FileCreationInformation();
                FCInfo.Url = fileToUpload;
                FCInfo.Overwrite = true;
                FCInfo.Content = System.IO.File.ReadAllBytes(fileToUpload);

                Web web = context.Web;
                List library = web.Lists.GetByTitle(libraryName);
                library.RootFolder.Files.Add(FCInfo);
                context.ExecuteQuery();

            }
            Console.WriteLine("Success");
        }
    }
}

Проблема, с которой я сталкиваюсь в *Линия 1009 *. Когда я пытаюсь добавить один файл в библиотеку SharePoint, Library Name я получаю следующее исключение: Microsoft.SharePoint.Client.ServerException: 'Value does not fall within the expected range.'

То, что я пробовал:

  • Я пытался использовать разные версииURL-адрес сайта SharePoint, который я использую. В настоящее время я использую правильный URL-адрес.
  • Я убедился, что у меня правильное имя библиотеки. Я попытался использовать поиск Library_x0020_Name, но исключение изменилось, сказав, что не может найти этот список.

Это заставляет меня поверить, что у меня есть правильное имя списка и URL сайта, поэтому ясмущен относительно того, что может быть причиной проблем на данный момент.

Любая помощь будет принята с благодарностью. Спасибо за ваш вклад!

1 Ответ

0 голосов
/ 17 октября 2019

Пожалуйста, используйте URL-адрес папки библиотеки SharePoint при настройке свойства FCInfo.Url. Я изменяю приведенный ниже фрагмент кода для загрузки в библиотеку SharePoint по умолчанию с именем «Documents»:

            String fileToUpload = "C:/Users/Administrator.CONTOSO2016/Desktop/Test.txt";
            String sharePointSite = "http://sp2016/sites/dev/";
            String libraryName = "Documents";
            String fileName = fileToUpload.Substring(fileToUpload.LastIndexOf("\\") + 1);
            using (ClientContext context = new ClientContext(sharePointSite))
            {
                FileCreationInformation FCInfo = new FileCreationInformation();
                FCInfo.Url = "http://sp2016/sites/dev/Shared%20Documents/Test.txt";
                FCInfo.Overwrite = true;
                FCInfo.Content = System.IO.File.ReadAllBytes(fileToUpload);

                Web web = context.Web;
                List library = web.Lists.GetByTitle(libraryName);
                Microsoft.SharePoint.Client.File uploadfile = library.RootFolder.Files.Add(FCInfo);
                uploadfile.CheckIn("testcomment",CheckinType.MajorCheckIn);
                context.ExecuteQuery();

            }
            Console.WriteLine("Success");

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...