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.