[C#.NET][Sharepoint 2013] 如何使用 CSOM 整合 Sharepoint Server,以文件庫 CRUD 為例
開發前準備,
- http://www.microsoft.com/en-us/download/details.aspx?id=35585
- 加入 Microsoft.SharePoint.Client.dll & Microsoft.SharePoint.Client.Runtime.dll 參考
開發步驟:
- 建立 ClientContext 執行個體,需要以下條件
- 目的地位置,比如 http://sps2013
- 指訂授權帳號密碼 ClientContext.Credentials
- 調用 ClientContext.Load<T>
- 載入 client 物件,這代表查詢命令的定義
- 這時候的命令還不會送出
- 調用 ClientContext.ExecuteQuery()
- 會依照 ClientContext.Load 的查詢定義,送給 SHarepoint Server ,然後返回相關的物件
開發範例
這是一個非常簡單的程式碼,在頂層網站的 Documents 清單裡,上傳一個檔案
private static void add() { using (ClientContext client = new ClientContext("http://sps2013")) { client.Credentials = new NetworkCredential("your account", "your password"); var site = client.Web; var list = site.Lists.GetByTitle("Documents"); FileCreationInformation file = new FileCreationInformation() { Content = System.IO.File.ReadAllBytes("demo.docx"), Url = "demo.docx", Overwrite = true }; var uploadingFile = list.RootFolder.Files.Add(file); client.Load(uploadingFile); client.ExecuteQuery(); } Console.Read(); }
透過 Load 方法,將欲查詢物件倒出來
private static void read() { using (ClientContext client = new ClientContext("http://sps2013")) { client.Credentials = new NetworkCredential("your account", "your password"); var site = client.Web; var list = site.Lists.GetByTitle("Documents"); var files = list.RootFolder.Files; client.Load(site); client.Load(list); client.Load(files); client.ExecuteQuery(); Console.WriteLine("Web site's Title:{0}", site.Title); Console.WriteLine("List's Title:{0}", list.Title); foreach (var file in files) { Console.WriteLine("File Name:{0}", file.Name); Console.WriteLine("MajorVersion:{0}", file.MajorVersion); } Console.Read(); } }
private static void delete() { using (ClientContext client = new ClientContext("http://sps2013")) { client.Credentials = new NetworkCredential("your account", "your password"); var site = client.Web; var list = site.Lists.GetByTitle("Documents"); var deleteFile = list.RootFolder.Files.GetByUrl("demo.docx"); deleteFile.DeleteObject(); client.ExecuteQuery(); } }
文章出自:http://www.dotblogs.com.tw/yc421206/archive/2014/06/03/145354.aspx
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET