2012-01-18 48 views
2

我正在使用SharePoint托管客户端对象模型API从SharePoint检索文件到我用C#编写的控制台应用程序。 我的代码(此处略)看起来是这样的:查询SharePoint ClientObjectModel中的文件API

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

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

返回FileCollection(文件)具有即使指定的文件夹(在relativeURL)居然有一对夫妇在它的文件没有结果。 当我运行的代码跌破该位,则文件夹对象的ItemCount中属性为2

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

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

// folder.ItemCount == 2 

我想不通为什么我似乎无法获得这些文件。所有权限似乎都没问题。 API中是否还有其他遗漏?

回答

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); 
} 
2

我想通了,我的问题。我的网站路径不完整。我有部分网站的前缀为relativeURL。所以,我可以创建站点上下文并获取文件夹,但由于clientContext没有完全用我想要的站点构建,所以我永远无法获取这些文件。