我正在使用以下代码使用C#将文件检入SharePoint 2016。但是它抛出 Microsoft.SharePoint.Client.ServerException:未找到文件。文件URL有效,并且在控制台中打印了file.name,以确认其有效性。请在这里告知发生了什么问题。
string url = "valid url of the file";
var file = clientContext.Web.GetFileByServerRelativeUrl(url);
clientContext.Load(file);
clientContext.ExecuteQuery();
Console.WriteLine(file.Name); //successfully printed expected result
file.CheckIn("Test", CheckinType.MajorCheckIn);
clientContext.Load(file);
clientContext.ExecuteQuery(); //File Not Found Exception thrown at this point
答案 0 :(得分:0)
尝试一下:
using (ClientContext clientContext = GetContextObject())
{
string url = "valid url of the file";
var file = clientContext.Web.GetFileByServerRelativeUrl(url);
using (FileStream fs = new FileStream(file, FileMode.Open))
{
File.SaveBinaryDirect(clientContext, file, fs, true);
}
}
答案 1 :(得分:0)
您可能会发现“文件的有效网址”实际上无效。我从一个“有效”的 URL 收到此错误,即从浏览器打开 Sharepoint 中的文件,但我认为文件名包含一些 C# CSOM 接口不支持的字符。就我而言,该文件名为“GetPDF.aspx%2F4AA3-8247ENW.pdf”,因此可能是因为它有两个句点,但我正在努力确认这一点。
答案 2 :(得分:0)
您可以看看https://www.codesharepoint.com/csom/get-checkin-comment-of-file-in-sharepoint-using-csom。我从未使用过 CSOM 和 GetFileByServerRelativeUrl,但我似乎记得 CheckIn 必须发生在文件上,而不是包含文件的项目。