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

mac2026-09-21  7

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

最新回复(0)