SPListItem.File Property

Gets the file that is represented by the item from a document library.

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


<ClientCallableAttribute> _
Public ReadOnly Property File As SPFile
Dim instance As SPListItem
Dim value As SPFile

value = instance.File
public SPFile File { get; }

Property Value

Type: Microsoft.SharePoint.SPFile
An object that represents the file. Returns a null reference (Nothing in Visual Basic) in a document library if the item does not exist. The File property also returns a null reference (Nothing in Visual Basic) if the item is a folder, or if the item is not located in a document library, although it is not recommended that you call this property in these cases.


The following code example uses the File property to display the file name and check out status of every .xml file in Shared Documents, where the item Title field contains a specified value.


For information about how to use Language-Integrated Query (LINQ) queries to retrieve list items in SharePoint Foundation, see Managing Data with LINQ to SharePoint.

using (SPWeb oWebsite = SPContext.Current.Site.OpenWeb("Website_Name"))
    SPList oList = oWebsite.Lists["Shared Documents"];

    string strSearch = "My Value";
    string strQuery = " <Where><And><Contains>" + 
        "<FieldRef Name='Title'/><Value Type='Text'>" + 
        strSearch + "</Value></Contains>" +
        "<Eq><FieldRef Name='File_x0020_Type'/>" +
        "<Value Type='Text'>xml</Value></Eq></And></Where>";

    SPQuery oQuery = new SPQuery();
    oQuery.Query = strQuery;

    SPListItemCollection collItemsRoot = oList.GetItems(oQuery);

    foreach (SPListItem oItemRoot in collItemsRoot)
        if (oItemRoot.FileSystemObjectType == SPFileSystemObjectType.File)
            Response.Write(SPEncode.HtmlEncode(oItemRoot.File.Name) + 
            " == " + oItemRoot.File.CheckOutStatus + "<BR>");

    SPListItemCollection collItemFolders = oList.Folders;

    foreach (SPListItem oItemFolder in collItemFolders)
        oQuery.Folder = oItemFolder.Folder;

        SPListItemCollection collListItems = oList.GetItems(oQuery);

        foreach (SPListItem oListItem in collListItems)
            if (oListItem.FileSystemObjectType == SPFileSystemObjectType.File)
                   " == " + oListItem.File.CheckOutStatus + "<BR>");
Using oWebsite As SPWeb = SPContext.Current.Site.OpenWeb("Website_Name")
   Dim oList As SPList = oWebsite.Lists("Shared Documents")

   Dim strSearch As String = "My Value"
   Dim strQuery As String = " <Where><And><Contains>" & "<FieldRef Name='Title'/><Value Type='Text'>" & strSearch & "</Value></Contains>" & "<Eq><FieldRef Name='File_x0020_Type'/>" & "<Value Type='Text'>xml</Value></Eq></And></Where>"

   Dim oQuery As New SPQuery()
   oQuery.Query = strQuery

   Dim collItemsRoot As SPListItemCollection = oList.GetItems(oQuery)

   For Each oItemRoot As SPListItem In collItemsRoot
      If oItemRoot.FileSystemObjectType = SPFileSystemObjectType.File Then
         Response.Write(SPEncode.HtmlEncode(oItemRoot.File.Name) & " == " & oItemRoot.File.CheckOutStatus & "<BR>")
      End If
   Next oItemRoot

   Dim collItemFolders As SPListItemCollection = oList.Folders

   For Each oItemFolder As SPListItem In collItemFolders
      oQuery.Folder = oItemFolder.Folder

      Dim collListItems As SPListItemCollection = oList.GetItems(oQuery)

      For Each oListItem As SPListItem In collListItems
         If oListItem.FileSystemObjectType = SPFileSystemObjectType.File Then
            Response.Write(SPEncode.HtmlEncode(oListItem.File.Name) & " == " & oListItem.File.CheckOutStatus & "<BR>")
         End If
      Next oListItem
   Next oItemFolder
End Using


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.

See Also


SPListItem Class

SPListItem Members

Microsoft.SharePoint Namespace