对象模型小应用

 MOSS对象模型的重要性相信大家也都明白,前面篇章笔者也已进行的概述,今天在这简单的用Demo补充下

其中同一个对象分别用不同方法进行实现。

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();

posted @ 2009-04-10 21:32  萍水相逢  阅读(515)  评论(0编辑  收藏  举报