• 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

  • 相关阅读:
    一个很好的命令行分享网站
    Docker inside Docker 基于 Alpine Linux
    CentOS 下运行Docker 内执行 docker build 命令的简单方法
    CentOS 安装 Harbor的简单过程(仅使用http 未使用https)
    [财务会计] 表外科目
    jira 插件介绍地址
    Linux 下安装nginx的总结 (之前写的有问题))
    Jira 的 数据库备份恢复 简单过程
    Jira 7.2.4简单安装过程
    Tomcat绑定具体IP
  • 原文地址:https://www.cnblogs.com/erucy/p/4175396.html
Copyright © 2020-2023  润新知