以编程方式将默认文档库作为目标以在SP16中上传文件

时间:2018-12-20 14:16:19

标签: c# file-upload sharepoint-2016

我制作了一个C#应用程序,用于将文件上传到SharePoint。到目前为止,它可以在除默认库之外的所有文档库上按预期工作。每当它抛出一个异常时:网址为“ http:// ...”的站点上不存在列表“文档” 我也尝试过“共享文档”,但结果相同。默认库是否有一些我不知道的内部名称?

上传代码如下:

// Get the SharePoint context
            ClientContext context = new ClientContext(domain);

            // Open the web
            var web = context.Web;

            String[] files = System.IO.File.ReadAllLines(args[0]);

            foreach (String file in files)
            {
                // Create the new file  
                var newFile = new FileCreationInformation
                {
                    Content = System.IO.File.ReadAllBytes(file),
                    Url = Path.GetFileName(file),
                    Overwrite = true
                };

                // Get a reference to the document library
                var docs = web.Lists.GetByTitle(library);
                var uploadFile = docs.RootFolder.Files.Add(newFile);

                // Upload the document
                context.Load(uploadFile);
            }

1 个答案:

答案 0 :(得分:1)

首先,通过URL(而不是标题)获取列表更为安全。

using (ClientContext context = new ClientContext("https://sharepoint.domain.com"))
{
    context.Load(context.Web, w => w.ServerRelativeUrl);
    context.ExecuteQuery();

    List list = context.Web.GetList($"{context.Web.ServerRelativeUrl.TrimEnd('/')}/Shared Documents");
}

也不要忘记放置对象context

检查启用的备用语言(网站设置>网站管理>语言设置)。您可能启用了更多的语言,而默认的语言可能与您期望的不同。每种语言都有其自己的列表名称。