[SharePoint]文档库树形展示

本文档介绍了如何使用递归方法在SharePoint中实现文档库的树形展示,通过遍历文件和子文件夹,忽略默认的系统文件夹,将文件和子文件夹添加到TreeView中,提供了一段C#代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      最近看到不少关于文档库方面的文章,最多的就是文档的树形展示。一直以为就是一个简单信息的读取,所以一直没有在意。当我仔细想一下后,发现还是有点意思的,因为完全是一个树形结构.

      我通过了一个递归来实现了数据的读取。

  1.   public void ShowDocFolder(SPFolder folder, TreeNode currentNode)
  2.         {
  3.             if (folder.SubFolders.Count == 0)     //如果不存在子文件夹就返回,并把文件夹中的文件加到TreeView中
  4.             {
  5.                 foreach (SPFile file in folder.Files)
  6.                 {
  7.                     TreeNode node = new TreeNode();
  8.                     node.Text = file.Name;
  9.                     node.NavigateUrl = "../" + file.Url;
  10.                     currentNode.ChildNodes.Add(node);
  11.                 }
  12.                 return;
  13.             }
  14.             else
  15.             {
  16.                 
  17.                 foreach (SPFile filein folder.Files)  //添加当前文件夹中的文件到TreeView中
  18.                 {
  19.                     TreeNode node = new TreeNode();
  20.                     node.Text = file.Name;
  21.                     node.NavigateUrl = "../" + file.Url;
  22.                     node.ImageUrl = "../_layouts/images/" + file.IconUrl;
  23.                     currentNode.ChildNodes.Add(node);  
  24.                 }
  25.                 foreach (SPFolder folder in folder.SubFolders)
  26.                 {
  27.                     if (folder.Name == "Forms")          //去掉默认的系统文件夹
  28.                     {
  29.                         continue;
  30.                     }
  31.                     TreeNode node = new TreeNode();
  32.                     node.Text = folder.Name;
  33.                     node.NavigateUrl = "../" + folder.Url;
  34.                     node.ImageUrl = "../img/PH02738U.BMP";
  35.                     currentNode.ChildNodes.Add(node);  //添加当前文件夹到TreeView中
  36.                     ShowDocFolder(folder, node);             //展示当前文件夹下面的文件和文件夹
  37.                 }
  38.             }
  39.         }
  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             SPSecurity.RunWithElevatedPrivileges(delegate()
  4.             {
  5.                 using (SPSite site = new SPSite("http://pc-lyliu"))
  6.                 {
  7.                     SPWeb web = site.OpenWeb();
  8.                     foreach (SPList list in web.Lists)
  9.                     {
  10.                         if (list.BaseTemplate != SPListTemplateType.DocumentLibrary)  //找到文档库
  11.                         {
  12.                             continue;
  13.                         }
  14.                         TreeNode node = new TreeNode();
  15.                         node.Text = list.Title;
  16.                         node.NavigateUrl = "../" + list.DefaultViewUrl;
  17.                         DocTreeView.Nodes.Add(node);
  18.                         ShowDocFolder(list.RootFolder, node);                    
  19.                     }
  20.                     ShowFolder(list.RootFolder, null);
  21.                 }
  22.             });
  23.         }

以上的代码仅供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值