3

我正在使用 SharePoint 托管客户端对象模型 API 将文件从 SharePoint 检索到我用 C# 编写的控制台应用程序。我的代码(这里缩写)看起来像这样:

ClientContext clientContext = GetClientContext(sitePath);
Web rootWeb = clientContext.Web;

var files= rootWeb.GetFolderByServerRelativeUrl(relativeURL).Files;
clientContext.Load(files);
clientContext.ExecuteQuery();
// FileCollection files has no results

即使指定的文件夹(在 relativeURL 中)实际上有几个文件,返回的 FileCollection(文件)也没有结果。当我运行下面的代码时,Folder 对象的 ItemCount 属性为 2。

ClientContext clientContext = GetClientContext(sitePath);
Web rootWeb = clientContext.Web;

var folder = rootWeb.GetFolderByServerRelativeUrl(relativeURL);
clientContext.Load(folder);
clientContext.ExecuteQuery();

// folder.ItemCount == 2

我不知道为什么我似乎无法获取文件。所有权限似乎都可以。API 中是否存在其他问题?

4

2 回答 2

3

我发现了我的问题。我的 sitePath 不是很完整。我有部分站点以 relativeURL 为前缀。因此,我可以创建站点上下文并获取文件夹,但由于 clientContext 没有完全使用我想要的站点构建,所以我永远无法获取文件。

于 2012-01-19T23:40:00.693 回答
1

我刚刚开始自己​​,但我的代码看起来就像你的一样,但我有这个循环跟随它

...         
clientContext.ExecuteQuery();
foreach( File file in files )
{
Debug.WriteLine( file.ServerRelativeUrl + "\t Level: " + file.Level + "\t modified: " + file.TimeLastModified + "\t by: " + file.ModifiedBy.ToString() + "\t CheckInComment: " + file.CheckInComment + "\t UIVersionLabel: " + file.UIVersionLabel );
}
于 2012-01-18T22:21:35.747 回答