SPFile Class
Represents a file in a SharePoint Web site that can be a Web Part Page, an item in a document library, or a file in a folder.
Inheritance Hierarchy
System.Object
Microsoft.SharePoint.SPFile
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
Public Class SPFile
Dim instance As SPFile
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
public class SPFile
Remarks
Use the GetFile or GetFileAsString method of the SPWeb class to return a single file object. Otherwise, use the Files property of either the SPWeb or SPFolder class to return an SPFileCollection object that represents the collection of files for a site or folder. Use an indexer to return a single file from the collection. For example, if the collection is assigned to a variable named collFiles, use collFiles[index] in C#, or collFiles(index) in Visual Basic, where index is the index number of the file in the collection, the file name including extension, or a Web site relative, site collection relative, or absolute URL.
Examples
This example adds a file from the document library of one site to the Shared Documents document library of another site and its subsites.
For an example that shows how to upload a local file to a folder on a SharePoint site programmatically, see How to: Upload a File to a SharePoint Site from a Local Folder.
Dim siteCollection As SPSite = SPContext.Current.Site
Dim srcSite As SPWeb = siteCollection.AllWebs("Source_Site_Name")
Dim destSites As SPWebCollection =
siteCollection.AllWebs("Destination_Site_Name").Webs
Dim srcFile As SPFile =
srcSite.GetFile("Source_Folder_Name/Source_File")
Dim fileName As String = srcFile.Name
Dim binFile As Byte() = srcFile.OpenBinary()
Dim destSite As SPWeb
For Each destSite In destSites
If destSite.GetFolder("Shared Documents").Exists Then
Dim destFolder As SPFolder =
destSite.GetFolder("Shared Documents")
destFolder.Files.Add(fileName, binFile, True)
End If
Next destSite
SPSite oSiteCollection = SPContext.Current.Site;
SPWeb oWebsiteSrc = oSiteCollection.AllWebs["Source_Site_Name"];
SPWebCollection collWebsites =
oSiteCollection.AllWebs["Destination_Site_Name"].Webs;
SPFile oFile = oWebsiteSrc.GetFile("Source_Folder_Name/Source_File");
string strFilename = oFile.Name;
byte[] binFile = oFile.OpenBinary();
foreach (SPWeb oWebsite in collWebsites)
{
if (oWebsite.GetFolder("Shared Documents").Exists)
{
SPFolder oFolder = oWebsite.GetFolder("Shared Documents");
oFolder.Files.Add(strFilename, binFile, true);
}
oWebsite.Dispose();
}
oWebsiteSrc.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 Best Practices: Using Disposable Windows SharePoint Services 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.