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;
this.recurSubFolders(output, text, folder.SubFolders);


That’s it. Happy recurring!


3 thoughts on “Iterating / Recurring Through Nested Folders in C#”

  1. This should handle one part of my current conundrum. Thank you.

    Now to schedule automatic uploads from shares to a report library.

  2. 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.

  3. 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 :)

Leave a Reply

Your email address will not be published. Required fields are marked *