• 获取SharePoint 2010文档库的文件夹及子文件夹


    在SharePoint中,文档库是基于列表的特殊情况,也就说文档库其实也是列表,只不过它增加了一些对于文件的存储和操作。可以将获取的文档库列表SPList转换为SPDocumentLibrary。得到了SPDocumentLibrary对象之后,就可以执行与文件紧密相关的操作了。

    SharePoint的文档库与列表都可以创建文件夹,默认情况列表的文件夹功能是禁用的,但文档库的文件夹功能是可以使用的。

    图1是“共享文档”下的新建文件夹功能及创建的文件夹。

    文档库中的新建文件夹功能

    图1

    在图1的“共享文档”的“文档”功能区中可以看到有一个“新建文件夹”的功能,点击它即可为此文档库创建文件夹。

    如果在操作对象模型时,不确定要操作的是列表还是文档库,则可以先使用SPList得到对象,然后再使用SPList. BaseTemplate获取是使用的那个模板创建,如果BaseTemplate的值等于DocumentLibrary就表示文档库,如果在事先不知道文档库的情况下直接将SPList转换为SPDocumentLibrary则将会出错。

    得到了SPDocumentLibrary对象之后,就可以使用SPDocumentLibrary.Folders获取此文档库下的所有文件夹,这里获取的是所有文件夹,不管文件夹的层次有多深都会被获取的。如果想得到文件夹下的子文件夹,则可以使用SubFolders属性来获取。

    下面是获取SharePoint文档库下所有不分层次结构的文件夹的代码:

    01 /// <summary>
    02 /// 获取文档库的文件夹及所有子文件夹
    03 /// </summary>
    04 /// <param name="DocName"></param>
    05 protected void GetDocumentFolder(string DocName)
    06 {
    07     SPWeb web = SPContext.Current.Web;
    08     SPList list = web.Lists[DocName];
    09     //判断列表是否为文档库
    10     if (list.BaseTemplate.ToString().Equals("DocumentLibrary"))
    11     {
    12         SPDocumentLibrary docLib = (SPDocumentLibrary)list;
    13         //获取文档库的所有文件夹,不分层次
    14         SPListItemCollection itemColl = docLib.Folders;
    15         foreach (SPListItem item in itemColl)
    16         {
    17             SPFolder sf = item.Folder;
    18             this.Label1.Text += "Name:" + sf.Name + "<br/><br/>";
    19             //获取文件夹的所有子文件夹
    20             SPFolderCollection sfColl = sf.SubFolders;
    21             foreach (SPFolder s in sfColl)
    22             {
    23                 this.Label1.Text += "子文件夹为:" + s.Name + "<br/>";
    24             }
    25         }
    26     }
    27 }

    通过上面的代码可知,使用SPDocumentLibrary.Foldes获取的类型为SPListItemCollection,但是这个集合中只包含文件夹而不包含文件。然后通过遍历即可得到每个文件夹,且不分层次。

    使用SPDocumentLibrary.Foldes得到了所有不分层次的文件夹之后就可以直接将SPListItem转换为SPFolder,然后再使用SPFolder的SubFolders得到其下的所有子文件夹。

    将上面的代码编写到可视WebPart中部署并运行,如图2所示:

    对象模型查看文档库下的文件夹和项目

    图2

    在图2中前2个文件夹就是图1的两个文件夹,而下面的两个子文件夹则在第一个文件夹中创建的,如图3所示:

    查看文档库的子文件夹

    图3

    其实所有SharePoint 2010系统中的库模板创建的实例的文件夹操作都跟列表的操作是一样的,只有在操作文档时才需要转换为SPDocumentLibrary对象进行操作。

     

     

    来源:http://www.360sps.com/Item/GetDocumentFolder.aspx

  • 相关阅读:
    selenium—用NoSuchElementException异常判断页面元素是否存在
    CentOS7 Nginx安装及配置反向代理
    CentOS7 安装 jexus-5.8.2-x64
    Windows Server 2008 R2远程协助选项 灰色
    IIS8.5 Error Code 0x8007007e HTTP 错误 500.19的解决方法
    记一次 windows server 2012R2 上安装 MSSQL2005 及网站发布
    记一次《系统集成实施的相关知识》培训自己感悟
    MySql 远程连接的条件
    CentOS7 下安装mysql历程
    VirtualBox虚拟机网络设置(四种方式)
  • 原文地址:https://www.cnblogs.com/xiaxianglanyu/p/3363899.html
Copyright © 2020-2023  润新知