Iterating / Recurring Through Nested Folders in C#
I ran into this issue at a client, and I found the information frickin sparse that was out there. If, at some point, you need to iterate through subfolders in a document library, you will find a nice set of posts out there saying "hey, just use recursion". Being one that prefers copying and pasting methods into my classes, that just doesn't really blow my hair back.
So, if you need to iterate through all your subfolders, here is the simple method that you can use to do so. You could obviously make this better with generics, but I am entirely too lazy to do so. You will notice that you should test whether you are returning the "forms" folder, since that is reserved and we don't really care what is in it.
-
public SPFolderCollection subFolderCollection = null;
-
-
private void recurSubFolders(HtmlTextWriter output, string folderPath, SPFolderCollection subFolders)
-
{
-
if ((this.subFolderCollection != null) && (this.subFolderCollection.Count> 1))
-
{
-
foreach (SPFolder folder in subFolders)
-
{
-
if (folder.Name.ToLower() != "forms")
-
{
-
string text = folderPath + @"\" + folder.Name;
-
output.Write(text);
-
this.recurSubFolders(output, text, folder.SubFolders);
-
}
-
}
-
}
-
}
That's it. Happy recurring!
3 Comments »
RSS feed for comments on this post. TrackBack URL





















Articles & Research
SharePoint Architecture
Personal/Off-Topic
Latest Free SharePoint Software
SecureCenter For SharePoint
SharePoint Security Assurance Program™
Free Online SharePoint Security Tools
Online SharePoint Security Health Assessment
Article Or Research Filed Under 
This should handle one part of my current conundrum. Thank you.
Now to schedule automatic uploads from shares to a report library.
Comment by Sean — July 2, 2007 @ 10:42 am
No problem, glad I could help. I had to do something similar to what it sounds like you are doing, so if you have problems feel free to ping me.
Comment by Adam Buenz — July 2, 2007 @ 11:48 am
Hi,
This looks like somthing i could use but how do I use this piece of code?
Thx for a little more explaination for a starter
Comment by Stieven — May 6, 2009 @ 6:33 am