我没有在谷歌上发现这一点,使用Microsoft.SharePoint连接到SharePoint。
我正在寻找的是简单地查询sharepoint并遍历其中的每个项目,检查每个项目的文件大小,并注意项目是否超过阈值。
除了在WebBrowser对象和屏幕抓取中加载sharepoint之外,还有什么方法可以做到这一点吗?
有没有人有这个链接?
答案 0 :(得分:0)
我不使用VB.net,但在C#中代码可以是这样的。
class SharePointOperation : IDisposable
{
private ClientContext oContext;
private Web oWeb;
public SharePointOperation(string webUrl)
{
oContext = new ClientContext(webUrl);
oWeb = oContext.Web;
}
/// <summary>
/// Get list items
/// </summary>
/// <param name="listName"></param>
/// <param name="camlQuery"></param>
/// <param name="callback"></param>
public void GetListItems(string listName, string camlQuery, Action<ListItemCollection> callback)
{
ListItemCollectionPosition position = new ListItemCollectionPosition {PagingInfo = ""};
ListItemCollection oItems;
List oList = oWeb.Lists.GetByTitle(listName);
do
{
CamlQuery oQuery = new CamlQuery { ViewXml = camlQuery };
oQuery.ListItemCollectionPosition = position;
oItems = oList.GetItems(oQuery);
oContext.Load(oItems);
oContext.ExecuteQuery();
callback(oItems);
position = oItems.ListItemCollectionPosition;
} while (position != null);
}
public void Dispose()
{
oContext.Dispose();
}
}
我创建了一个可以使用的SharePoint类操作。要从列表中获取数据,我可以这样做。
string caml = "<View><RowLimit>10</RowLimit><Query><Where><Eq><FieldRef Name='Title' /><Value Type='Text'>Title value</Value></Eq></Where>/Query></View>";
using (SharePointOperation op = new SharePointOperation("https://url"))
{
op.GetListItems("List name",caml, (ListItemCollection items) =>
{
// Code not extended for brevity
MessageBox.Show("Done");
});
}
最后一个参数是每次获取数据时执行的操作。以块的形式检索数据以避免使用大量项目时出现问题。无论如何,这只有一个想法。您可以将C#转换为VB.net,并且应该适合您。
要使用外部应用程序中的SharePoint数据,请不要忘记添加对客户端对象模型库的引用。这些通常可以在C:\ Program Files \ Common Files \ microsoft shared \ Web Server Extensions \ 16 \ ISAPI中找到。只需添加对Microsoft.SharePoint.Client.dll和Microsoft.SharePoint.Client.Runtime.dll
的引用使用Microsoft.SharePoint.Client;