WSS V3 中用代码遍历列表的方法(支持文件夹的列表的项目遍历)
在WSS V3中列表(List)中是支持文件夹的,可以用文件夹来组织一个列表的项目。
WSS V3中列表的结构如下:
![](/images/cnblogs_com/freepark/21236/r_ListStructure.jpg)
在WSS V3的对象模型中SPList下的所有列表项目和子文件夹都是SPListItem,只是SPListItem的ContentType不一样
项目的ContentType.Name = Item
文件夹的ContentType.Name = Folder
用SPQuery.Folder可以设置Query的文件夹,利用SPList.GetItems(SPQuery)可以得到相应文件夹下的项目(包括了文件夹)
遍历列表项目的时候需要做到:
1)遍历出文件夹的层级结构
2)得到每个文件夹下的ListItem并区分是Item还是Folder,如果是Folder则还需要继续向下遍历
根据以上的分析,利用递归来完成列表的遍历:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
利用这个递归过程便利一个列表得到的结果: