SPFolderCollection Class
Represents a collection of SPFolder objects.
Inheritance Hierarchy
System.Object
Microsoft.SharePoint.Administration.SPAutoSerializingObject
Microsoft.SharePoint.SPBaseCollection
Microsoft.SharePoint.SPFolderCollection
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: Yes
Available in SharePoint Online
Syntax
'Declaration
<SubsetCallableTypeAttribute> _
<ClientCallableTypeAttribute(Name := "FolderCollection", ServerTypeId := "{b6b425aa-9e17-4205-a4aa-b82c2c3f884d}", _
CollectionChildItemType := GetType(SPFolder))> _
Public Class SPFolderCollection _
Inherits SPBaseCollection
'Usage
Dim instance As SPFolderCollection
[SubsetCallableTypeAttribute]
[ClientCallableTypeAttribute(Name = "FolderCollection", ServerTypeId = "{b6b425aa-9e17-4205-a4aa-b82c2c3f884d}",
CollectionChildItemType = typeof(SPFolder))]
public class SPFolderCollection : SPBaseCollection
Remarks
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.
Examples
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 & "/" &
srcFolders(i).Name)
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 + "/" +
collFolders[intIndex].Name);
}
}
}
Note
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.