对象模型小应用
其中同一个对象分别用不同方法进行实现。
SPSite site = new SPSite("http://mosingserver:8080");
SPWeb web = site.OpenWeb();
//也可以直接先找到根网站
//SPWeb web = site.RootWeb;
//直接在WSS上运行可通过当前上下文直接找到当前网站
//SPWeb web = SPContext.Current.Web;
web.AllowUnsafeUpdates = true;
////通过文档名直接获取列表对象
SPList list1=web.Lists["共享文档"];
////通过文档所在的路径获取列表对象
//SPList list2 = web.GetListFromUrl("");
////通过GUID获取列表对象
//Guid listID = new Guid("GUID");
//SPList list3=web.Lists[listID];
////直接通过上下文对象获取到列表对象
//SPList list4 = SPContext.Current.List;
//****************************//
//对列表进行相关操作
// list1.Title = "Microsoft Productes";
//给列表添加一个内容类型
//list1.Fields.Add("Texting",SPFieldType.Text,false);
//设置列表是否显示到快速启动栏
//list1.OnQuickLaunch =true;
//list1.Update();
//***************************//
//用代码直接创建一个列表
//Guid newListID = web.Lists.Add("微软产品文档","存放日常的一些产品文档资料",SPListTemplateType.DocumentLibrary);
// SPList newList = web.Lists[newListID];
//newList.OnQuickLaunch = true;
//newList.Update();
//**************************/
//在进行转换文档对象(文档库对象继承于列表对象,文档库大部分的操作都可以通过列表的对象模型操作,
//只有涉及到文档库特殊的操作时候需要文档库的对象),要获取文档库对象首先要获取相应的列表对象,然后通过类型转化即可
//SPDocumentLibrary doclib = (SPDocumentLibrary)List1;
//获取所有的签入文档
//IList<SPCheckedOutFile> checkeoutdoc = doclib.CheckedOutFiles;
//*************************//
//通过视图API 可以给列表添加视图,常用的操作有,添加,修改,删除视图,视图对象依赖于列表对象,可以从列表的View集合属性获取
//分别可以通过视图名,视图ID,索引三种方式获得视图
//由视图名获取
// SPView view1=list1.Views["视图名称"];
//由视图ID获取
// SPView view2=list1.Views[new Guid("GUDI")];
//由索引获取
// SPView view3=list1.Views[0];
//添加视图(设置显示字段,过滤,分页,和默认视图一样)
//SPView newview = list1.Views.Add("新视图",list1.DefaultView.ViewFields.ToStringCollection(),list1.DefaultView.Query,list1.DefaultView.RowLimit,list1.DefaultView.Paged,false);
// newview.ViewFields.Add(list1.Fields["2009/4/2"]);
//newview.Update();
//列表项的相关操作
//输出所有的列表项
SPListItemCollection allitems = list1.Items;//获取列表项集合
foreach(SPListItem item in allitems)
{
Console.WriteLine(item.Title);
}
//删除一个列表项
//SPListItem item1 = list1.Items[0];
//item1.Delete();
//添加一个列表项
//SPListItem item2 = list1.Items.Add();
//item2["公司地址"]="广州";
//item2["生产时间"]="2009/04/01";
//由列表项ID获取一个列表项的两种方式
//SPListItem item1 = list1.Items.DeleteItemById(1);
//SPListItem item2 = list1.GetItemById(1);
//获取到列表项之后,可以通过File获取到文件对象,或知道文件路径直接通过SPWeb对象获取文件的对象,而对文档库来说,列表项和文件对象
//是可以相互转换的
SPDocumentLibrary doclibry = (SPDocumentLibrary)list1;
//删除一个列表项
// SPListItem item3 = list1.Items[0];
//item3.Delete();
SPListItem item4 = list1.Items[1];
//获取文件对象
SPFile file2 = item4.File;
//打开文件数据
byte[] fileData = file2.OpenBinary();
//通过文件URL获取文件对象
// SPFile fiel3 = web.GetFile("http://mosingserver:8080/DocLib1/Forms/AllItems.aspx");
//通过文件对象获取到列表项对象
//SPListItem item3 = file2.Item;
//首先将文件加载到byt数组
//打开一个文件,然后将文件内容读入一个字符串,最后关闭
byte[] newFileData = System.IO.File.ReadAllBytes(@"C:"test.doc");
//然后添加到文件夹的文件集合中
SPFile newFile = doclibry.RootFolder.Files.Add("test.doc",fileData);//这句代码可以看出,列表和文件的添加有区别:列表是Item.Add(),
//文件是通过文档库文件夹对象File.Add(),进行添加的,其中删除和更改还是一样的!
web.Dispose();
site.Dispose();