SPFolderCollection class

Represents a collection of SPFolder objects.

Inheritance hierarchy


Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)


Public Class SPFolderCollection _
    Inherits SPBaseCollection
Dim instance As SPFolderCollection
public class SPFolderCollection : SPBaseCollection


Use the Folders property of the SPWeb class, or the Subfolders() property of the SPFolder class, to return the collection of folders for a site or folder. To create a folder, use the Add method of SPFolderCollection.

Use an indexer to return a single folder from the collection. For example, assuming the collection is assigned to a variable named collFolders, use collFolders[index] in C#, or collFolders(index) in Visual Basic, where index is either the index number of the folder in the collection or the display name of the folder.


The following code example copies all the subfolders of a Shared Documents document library, excluding the Forms subfolder, into another document library on the same site.

Dim siteCollection As SPSite = SPControl.GetContextSite(Context)
Dim site As SPWeb = siteCollection.AllWebs("Site_Name")

Dim srcFolders As SPFolderCollection = 
    site.GetFolder("Shared Documents").SubFolders
Dim destFolder As SPFolder = site.GetFolder("Destination_Folder")

Dim i As Integer

    For i = 0 To srcFolders.Count - 1

        If srcFolders(i).Name <> "Forms" Then

            srcFolders(i).CopyTo(destFolder.Url & "/" & 

        End If

Next i
SPSite oSiteCollection = SPContext.Current.Site;
using (SPWeb oWebsite = oSiteCollection.AllWebs["Site_Name"])
    SPFolderCollection collFolders =
        oWebsite.GetFolder("Shared Documents").SubFolders;
    SPFolder oFolderDest = oWebsite.GetFolder("Destination_Folder");

    for (int intIndex = 0; intIndex < collFolders.Count; intIndex++)
        if (collFolders[intIndex].Name != "Forms")
            collFolders[intIndex].CopyTo(oFolderDest.Url + "/" +


Certain objects implement the IDisposable interface, and you must avoid retaining these objects in memory after they are no longer needed. For information about good coding practices, see Disposing Objects.

Thread safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See also


SPFolderCollection members

Microsoft.SharePoint namespace