• 遍历SPWeb下的文件库文件夹和文件


    背景:

          最近进在做一个MOSS Farm的管理报表,需要By Farm,By Site,By Web,By Libray,By Document

    去检索文件的生命周期。在开发的过程中Farm可以通过手动维护(数据不会超过10笔),site\web可以通过

    web表来获取,以及Libray可以通过siteid和webid来写C# Console程式在Web Webserver下周期执行来得到

    文件库的数据。

          最后,遇到一个问题,如何通过SP对象模型编程,来得到Document的数据。

     

    思路:

       1、  利用SPFold模型,Feach遍历SubFolders对象来查询子文件夹下的文档模型对象。

       2、 利用spfolder.Files来获取当前文件目录下的文档模型对象。

       3、 以上思路的求解,都必须基于由已知的文件库对象SPDocumentLibray,如何Coding来得到此文件库的SPFolder对象。

     

    之前问题的解决办法,

          假设我们已经知道该网站的siteid,webid信息,

    下面我们就来实现遍历构造此网站下所有文件库的SPFolder对象的方法。

    代码测试如下:

        

    namespace TestWeb
    {
    public partial class WebForm1 : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    if (!IsPostBack)
    {
    string br = System.Environment.NewLine;
    Guid siteid
    = new Guid("5E601555-DD68-4518-889B-95D162A2A348");
    Guid webid
    = new Guid("5A7EF298-C322-4C41-9360-FE68AC63B23B");
    SPSite site
    = null;
    SPWeb web
    = null;
    SPListCollection lists
    = null;
    SPFolder folder
    = null;
    SPFolderCollection folders
    = null;
    string s = "";
    try
    {
    site
    = new SPSite(siteid);
    web
    = site.OpenWeb(webid);
    lists
    = web.GetListsOfType(SPBaseType.DocumentLibrary);
    foreach (SPList list in lists)
    {
    try
    {
    folder
    = list.RootFolder; // web.GetFolder(list.DefaultViewUrl); // 失败:AllItems.aspx
    s += folder.Name + " ; " + list.Title + "<br/>";
    }
    catch (Exception xx)
    {
    s
    += xx.Message + " ; " + list.Title + "<br/>";
    }
    }
    }
    catch (Exception ex)
    {
    throw ex;
    }
    finally
    {
    site
    = null;
    web
    = null;
    }

    Response.Write(s);
    }
    }
    }
    }

     

     

    测试结果

     

    剩下的事情,就是利用SPForder来遍历收集当前文件的信息

    和当前子文件夹下的文件信息。就不在详细说明了。

  • 相关阅读:
    打印水仙花数
    ios9基础知识总结(一)
    简单工厂模式自我理解
    例子
    委托
    IO 磁盘总结
    配置文件命令
    三层架构dal 层基本代码 非查询/查询
    三层架构自我总结
    三层架构源代码
  • 原文地址:https://www.cnblogs.com/Areas/p/2192177.html
Copyright © 2020-2023  润新知