Compartilhar via


SPFileCollection Class

Represents a collection of SPFile objects.

Inheritance Hierarchy

System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.SPBaseCollection
      Microsoft.SharePoint.SPFileCollection

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: Yes
Available in SharePoint Online

Syntax

'Declaration
<SubsetCallableTypeAttribute> _
<ClientCallableTypeAttribute(Name := "FileCollection", ServerTypeId := "{d367b17c-170b-4691-a1e3-8bccf7686ce4}",  _
    CollectionChildItemType := GetType(SPFile))> _
Public Class SPFileCollection _
    Inherits SPBaseCollection
'Usage
Dim instance As SPFileCollection
[SubsetCallableTypeAttribute]
[ClientCallableTypeAttribute(Name = "FileCollection", ServerTypeId = "{d367b17c-170b-4691-a1e3-8bccf7686ce4}", 
    CollectionChildItemType = typeof(SPFile))]
public class SPFileCollection : SPBaseCollection

Remarks

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.

Examples

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")
Try
    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
Finally
    SiteCollection.Dispose()
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);
        }
    }
    oSourceWebsite.Dispose();
    oDestinationWebsite.Dispose();
}

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.

See Also

Reference

SPFileCollection Members

Microsoft.SharePoint Namespace