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


                                遍历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来遍历收集当前文件的信息

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

  • 相关阅读:
    事务四大特征:原子性,一致性,隔离性和持久性(ACID)
    解决“要登录到这台远程计算机,你必须被授予”
    SqlServer_查看SQLServer版本信息
    sed 查找文件的某一行内容
    linux echo命令的-n、-e两个参数
    在.Net中进行跨线程的控件操作(上篇:Control.Invoke)
    .NET性能优化方面的总结
    SQLSERVER2008 显示列信息,包含扩展属性
    C#4.0新特性:可选参数,命名参数,Dynamic
    浅谈.net中的params关键字
  • 原文地址:https://www.cnblogs.com/itshare/p/2182927.html
Copyright © 2020-2023  润新知