SharePoint服务器端对象模型 之 访问文件和文件夹(Part 2)

4、添加文件夹

文件夹的创建方法在文档库和普通列表中稍有不同。

在文档库中,与一般的集合操作相同,直接使用SPFolderCollection的Add(string name)方法即可添加文件夹,例如下面的程序在文档库的根目录中添加一个名为“技术文档”的子文件夹:

   1: using(SPSite site = new SPSite("http://sp2010/book"))
   2: {
   3:   using(SPWeb web = site.OpenWeb())
   4:   {
   5:     SPList doclib = web.Lists["共享文档"];
   6:     doclib.RootFolder.SubFolders.Add("技术文档");
   7:   }
   8: }

但是这种方法对于普通列表来说就行不通了。在文档库中,SharePoint会将我们用上述方法创建的文件夹自动关联创建一个列表条目;但是在普通列表中,这种文件夹不会自动关联到新的列表条目上,因此在普通列表中使用这种方法创建出的文件夹,不会显示在任何一个列表视图中。在普通列表中,我们需要使用创建一个“文件夹类型的列表条目”的方式,来新建文件夹(既然是创建一个列表条目,不要忘记最后需要调用Update方法才能创建成功):

   1: using(SPSite site = new SPSite("http://sp2010/book"))
   2: {
   3:   using(SPWeb web = site.OpenWeb())
   4:   {
   5:     SPList list = web.Lists["Chapters"];
   6:     SPListItem fldItem = list.AddItem();
   7:     fldItem.FileSystemObjectType = SPFileSystemObjectType.Folder;
   8:     fldItem["Title"] = "第一部分";
   9:     fldItem.Update();
  10:   }
  11: }

这种方法同样适用与文档库中的文件夹创建,但不同的是需要将文件夹名称写入“FileLeafRef”字段,而不是“Title”字段。(FileLeafRef是“名称”字段的内部名称,Title是“标题”字段的内部名称)

 

5、在文件夹中创建列表条目

之前在创建列表条目、文件夹的时候,都是在列表的根目录中进行的,当我们需要在某个子目录中创建列表条目或子文件夹的时候,需要用到SPList的AddItem方法的一个重载:

   1: public SPListItem AddItem(string folderUrl, 
   2:                        SPFileSystemObjectType underlyingObjectType)

或者SPListItemCollection的Add方法的类似重载:

   1: public SPListItem Add(string folderUrl,
   2:                        SPFileSystemObjectType underlyingObjectType)

其中第一个参数需要指定列表条目所在的子文件夹的路径(要求使用相对服务器的Url地址);第二个参数指定了要创建的列表条目的类型,即创建普通条目还是创建文件夹。下面给出了一个例子:

   1: using (SPSite site = new SPSite("http://sp2010/book"))
   2: {
   3:   using (SPWeb web = site.OpenWeb())
   4:   {
   5:     SPList list = web.Lists["Chapters"];
   6:     SPFolder folder = web.GetFolder(list.RootFolder.Url
   7:          + "/第一部分");
   8:     SPListItem itmInFolder = list.AddItem(folder.ServerRelativeUrl,
   9:     SPFileSystemObjectType.File);
  10:     itmInFolder["Title"] = "Ch01";
  11:     itmInFolder.Update();
  12:   }
  13: }

 

6、文件(SPFile)和文件夹(SPFolder)的常用属性

SPFile的一些常用属性如下:


名称


类型


说明


Exists


bool


文件是否存在


IconUrl


string


与文件类型相关联的图标的Url


Item


SPListItem


文档对应的列表条目对象


Length


long


文件的大小


Name


string


文件名


ParentFolder


SPFolder


所在文件夹的对象


ServerRelativeUrl


string


文件相对于服务器的Url


Url


string


文件相对于网站的Url

SPFolder的一些常用属性如下:


名称


类型


说明


Exists


bool


文件夹是否存在


Files


SPFileCollection


文件夹中的文件集合


Item


SPListItem


文件夹对应的列表条目对象


Name


string


文件夹名称


ParentFolder


SPFolder


父文件夹的对象


SubFolders


SPFolderCollection


子文件夹集合


ServerRelativeUrl


string


文件相对于服务器的Url


Url


string


文件相对于网站的Url

时间: 2024-10-09 22:49:53

SharePoint服务器端对象模型 之 访问文件和文件夹(Part 2)的相关文章

SharePoint服务器端对象模型 之 访问文件和文件夹(Part 3)

(三)遍历 文件系统的遍历是指按照文件夹的层级结构遍历文档库.列表的文件夹和列表条目.遍历主要有三种方式:(1)直接使用文件系统对象模型进行遍历:(2)使用SPDocumentLibrary进行遍历:(3)借助SPQuery进行遍历. 1.SPList的Items和Folders属性 在介绍真正的遍历之前,有必要先解释一下这两个重要的属性. 这两个属性返回的都是SPListItemCollection类型,它们分别返回了列表中所有的普通条目(或文件),以及列表中的所有文件夹.不论这些条目.文件.

SharePoint服务器端对象模型 之 访问文件和文件夹(Part 4)

(四)列表附件 列表的附件也是文件系统的一部分,它依附于普通列表的列表条目之上(文档库没有附件),它的操作在一些地方和文档库中文档的操作非常类似.   1.附件的读取 一个列表条目的附件可以使用SPListItem的Attachments属性访问,该属性是SPAttachmentCollection类型.这个类型在SharePoint中是一个比较特殊的类型,其特殊之处在于不存在SPAttachment类型.那么SPAttachmentCollection这个集合中存放的又是什么呢?是附件的文件名

SharePoint服务器端对象模型 之 访问网站和列表数据(Part 5)

(五)列表条目(SPListItem) SharePoint中数据的存储基本上都是通过列表条目来完成(文档库中的文档也是一种特殊的列表条目),因此在SharePoint应用开发中,最终是要和列表条目打交道的.在SharePoint对象模型中,使用SPListItem表示列表条目,使用SPListItemCollection表示列表条目集合.   1.列表条目的获取 列表条目的获取有多种方式,一些常用方式如下: (1) 通过SPList的Items属性,获取列表中的所有条目(不包括文件夹本身对应的

SharePoint服务器端对象模型 之 访问用户、用户组和权限(Part 1)

(一)概述 SharePoint权限系统是整个SharePoint体系中一个比较重要的部分,权限系统主要分成两大部分:认证和授权. 认证主要解决的问题是判断登陆者是否合法,以及他究竟是哪一个用户,SharePoint与此相关的对象包括用户和用户组.SharePoint支持多种身份认证方式,从最基本的Windows集成认证到各种表单认证,并且在SharePoint 2010中增加了基于声明(Claim Based)认证方式,以及一些相关服务,允许在同一个网站中使用多种认证方式.不过认证方式的设置不

SharePoint服务器端对象模型 之 访问网站和列表数据(Part 2)

(二)列表(SPList) 列表是SharePoint中最为重要的数据容器,我们一般保存在SharePoint中的所有数据,都是保存在列表中(文档库也是一种列表),因此列表对象在SharePoint的开发中是非常重要的对象之一.在SharePoint中,列表对象使用SPList表示,列表的集合使用SPListCollection表示. 如果实在难以理解SharePoint列表是怎么一回事的话,可以设想如下这种其实不准确的比喻,与传统的数据类型相比较,有如下的对应关系:列表(SPList)相当于数

SharePoint服务器端对象模型 之 访问网站和列表数据(Part 3)

(三)视图 与传统意义上的数据视图类似,SharePoint中的列表视图指定了列表中数据的筛选条件.排序条件.分组条件.显示栏/字段.显示条目数.显示样式等内容.在SharePoint中,使用SPView表示列表视图,使用SPViewCollection表示视图的集合. 在SharePoint中,作为列表.文档库最主要的显示途径,每一个视图都对应有一个Url(即该视图所在页面的地址).事实上,当我们向页面中插入一个Web部件选择"列表和库"分类,或者直接选择插入一个"现有列表

SharePoint服务器端对象模型 之 访问网站和列表数据(Part 4)

(四)栏/字段 SharePoint中的字段(中文版中叫做"栏")与传统的数据栏类似,也有不同类型的区别,不过SharePoint中内置的栏类型除了按照数据类型(如数字.日期和时间等)进行区分之外,更多的是从应用类型(货币.选项.查阅项等)进行分类.除内置的字段类型之外,SharePoint同样允许我们通过开发的方式实现自定义字段类型的扩展.在SharePoint中使用SPField表示字段,使用SPFieldCollection表示字段集合,内置的字段类型使用SPFieldType枚

SharePoint服务器端对象模型 之 对象模型概述(Part 2)

(三)Url 作为一个B/S体系,在SharePoint的属性.方法参数和返回值中,大量的涉及到了Url,总的来说,涉及到的Url可以分为如下四类: 绝对路径:完整的Url,包含了协议头(http或https).端口号.主机名等等,例如:http://myserver/subweb/documents/myfolder/myfile.doc.在SharePoint中,必须要使用绝对路径的机会并不是很多.一些网站级别对象的属性为绝对路径,例如spWeb.Url和spSite.Url. 相对服务器路

开启貌似已经过时很久的新坑:SharePoint服务器端对象模型

5年前(嗯,是5年前),SharePoint 2010刚发布的时候,曾经和kaneboy试图一起写一本关于SharePoint 2010开发的书,名字叫<SharePoint 2010 应用开发指南>(涂指南这个名字不是白叫的).给大家看一下当年列出来的大纲: SharePoint 2010开发概览 SharePoint 2010基础架构,SharePoint与ASP.NET.IIS的关系 解释服务器场的概念,从硬件拓扑层次解释APP.WFE 解释Web应用程序.网站集.网站.列表和文档库的概