无法使用 SharePoint 客户端 API 列出 files/folders
Cannot list files/folders with the SharePoint Client API
我正在尝试使用 C# 中的官方 SharePoint 客户端库 (Microsoft.SharePoint.Client
) 列出 SharePoint 在线网站中的文件和文件夹。
站点文件是这样的:
基于 URL(你可以在图片中看到),这就是我正在尝试的方式:
using (ClientContext ctx = new ClientContext("https://*******.sharepoint.com/sites/cms"))
{
//Setup authentication
SecureString passWord = new SecureString();
foreach (char c in "mypassword".ToCharArray())
{
passWord.AppendChar(c);
}
//Connect
ctx.Credentials = new SharePointOnlineCredentials("myuser", passWord);
Web web = ctx.Web;
//Retrieve folder
var folder = web.GetFolderByServerRelativeUrl("/doc/projects/C07725");
ctx.Load(folder);
ctx.ExecuteQuery(); //This seems to work
//List subfolders
ctx.Load(folder.Folders);
ctx.ExecuteQuery(); //This throws Microsoft.SharePoint.Client.ServerException: 'File Not Found.'
}
但是,如评论中所示,最后一行抛出
Microsoft.SharePoint.Client.ServerException: 'File Not Found.'
如果我尝试使用 Files
属性 而不是文件夹,也会发生这种情况。
我在这里错过了什么? folder
变量似乎已正确加载(调用第一个 .ExecuteQuery()
后,其中的 ItemsCount
属性 设置为 11
),但我无法获得任何进一步没有提出例外。我在这里做错了什么?
嗯,我发现问题了。
确实是我“分割”路径的地方有问题。
我不得不在网站上走得更远 URL:
using (ClientContext ctx = new ClientContext("https://*******.sharepoint.com/sites/cms/doc/projects"))
并从文件夹路径中删除该部分:
var folder = web.GetFolderByServerRelativeUrl("C07725");
现在可以正常工作了。
我正在尝试使用 C# 中的官方 SharePoint 客户端库 (Microsoft.SharePoint.Client
) 列出 SharePoint 在线网站中的文件和文件夹。
站点文件是这样的:
基于 URL(你可以在图片中看到),这就是我正在尝试的方式:
using (ClientContext ctx = new ClientContext("https://*******.sharepoint.com/sites/cms"))
{
//Setup authentication
SecureString passWord = new SecureString();
foreach (char c in "mypassword".ToCharArray())
{
passWord.AppendChar(c);
}
//Connect
ctx.Credentials = new SharePointOnlineCredentials("myuser", passWord);
Web web = ctx.Web;
//Retrieve folder
var folder = web.GetFolderByServerRelativeUrl("/doc/projects/C07725");
ctx.Load(folder);
ctx.ExecuteQuery(); //This seems to work
//List subfolders
ctx.Load(folder.Folders);
ctx.ExecuteQuery(); //This throws Microsoft.SharePoint.Client.ServerException: 'File Not Found.'
}
但是,如评论中所示,最后一行抛出
Microsoft.SharePoint.Client.ServerException: 'File Not Found.'
如果我尝试使用 Files
属性 而不是文件夹,也会发生这种情况。
我在这里错过了什么? folder
变量似乎已正确加载(调用第一个 .ExecuteQuery()
后,其中的 ItemsCount
属性 设置为 11
),但我无法获得任何进一步没有提出例外。我在这里做错了什么?
嗯,我发现问题了。
确实是我“分割”路径的地方有问题。
我不得不在网站上走得更远 URL:
using (ClientContext ctx = new ClientContext("https://*******.sharepoint.com/sites/cms/doc/projects"))
并从文件夹路径中删除该部分:
var folder = web.GetFolderByServerRelativeUrl("C07725");
现在可以正常工作了。