Share via

SPFileCollection class

Represents a collection of SPFile objects.

Inheritance hierarchy


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


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


Use the Files property of either the SPWeb or SPFolder class to return the collection of files for the site or folder. To create a new file, use one of the Add methods of SPFileCollection.

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


The following code example checks every file in the top-level folder of a specified document library for the last time that it was modified and, if the time is less than a certain value, copies the file to another document library.

Dim SiteCollection As New SPSite("http://MySiteCollection")
    Dim srcFolder As SPFolder = siteCollection.AllWebs("SourceWebSite").GetFolder("SourceDocLib")
    Dim destFiles As SPFileCollection = siteCollection.AllWebs("DestWebSite").GetFolder("DestDocLib").Files

    Dim srcFile As SPFile
    For Each srcFile In  srcFolder.Files
        If srcFile.TimeLastModified < Convert.ToDateTime("12/5/2002 12:00:00 AM") Then
            Dim destURL As String = destFiles.Folder.Url + "/" + srcFile.Name
            Dim binFile As Byte() = srcFile.OpenBinary()

            destFiles.Add(destURL, binFile, True)
        End If
    Next srcFile
End Try
using (SPSite oSiteCollection = new SPSite("http://MySiteCollection"))
    SPWeb oSourceWebsite = oSiteCollection.AllWebs["SourceWebSite"];
    SPWeb oDestinationWebsite = oSiteCollection.AllWebs["DestWebSite"];

    SPFolder oFolder = oSourceWebsite.GetFolder("SourceDocLib");
    SPFileCollection collFiles = oDestinationWebsite.GetFolder("DestDocLib").Files;

    foreach (SPFile oFile in oFolder.Files)
        if (oFile.TimeLastModified < Convert.ToDateTime("12/7/2007 12:00:00 AM"))
            string strDestURL = collFiles.Folder.Url + "/" + oFile.Name;
            byte[] binFile = oFile.OpenBinary();

            collFiles.Add(strDestURL, binFile, true);


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


SPFileCollection members

Microsoft.SharePoint namespace