SPFile.Properties Property

Gets metadata for the file.

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

Syntax

'Declaration
Public ReadOnly Property Properties As Hashtable
    Get
'Usage
Dim instance As SPFile
Dim value As Hashtable

value = instance.Properties
public Hashtable Properties { get; }

Property Value

Type: System.Collections.Hashtable
A System.Collections.Hashtable object that contains the metadata.

Remarks

The Windows SharePoint Services 3.0 object model supports updating file metadata. You can use an indexer on this property to set a value. For example, to set the value of the MyDate property for a given file to the current date and time, use the indexer and call the Update method, as follows:

[Visual Basic]

oFile("MyDate") = DateTime.Now

oFile.Update()

[C#]

oFile["MyDate"] = DateTime.Now;

oFile.Update();

Examples

The following code example iterates through the collection of files in a document library and displays the properties and values for each file.

This example requires using directives (Imports in Visual Basic) for the Microsoft.SharePoint and Microsoft.SharePoint.Utilities namespaces.

Dim siteCollection As SPSite = SPContext.Current.Site
Dim site As SPWeb = siteCollection.AllWebs("Site_Name")

Dim folder As SPFolder = site.Folders("Shared Documents")
Dim files As SPFileCollection = folder.Files
Dim file As SPFile

For Each file In  files

    Dim hash As System.Collections.Hashtable = file.Properties
    Dim keys As System.Collections.ICollection = hash.Keys
    Dim key As Object

    For Each key In  keys

        Response.Write(SPEncode.HtmlEncode(key.ToString()) 
            & " :: " & SPEncode.HtmlEncode(hash(key.ToString())
            .ToString()) & "<BR>")

    Next key

Next file
SPSite oSiteCollection = SPContext.Current.Site;
using(SPWeb oWebsite = oSiteCollection.AllWebs["Site_Name"])
{
    SPFolder oFolder = oWebsite.Folders["Shared Documents"];
    SPFileCollection collFiles = folder.Files;

    foreach (SPFile oFile in collFiles)
    {
        System.Collections.Hashtable collHashes = file.Properties;
        System.Collections.ICollection collKeys = hash.Keys;

        foreach (object oKey in collKeys)
        {
            Response.Write(SPEncode.HtmlEncode(oKey.ToString()) 
            + " :: " + 
            SPEncode.HtmlEncode(hash[oKey.ToString()].ToString())
            + "<BR>");
        }
    }
}

The previous example displays metadata similar to the following:

vti_author :: User_Name
vti_cachedtitle :: New Page 1
vti_metatags :: HTTP-EQUIV=Content-Language en-us GENERATOR Microsoft\ 
    FrontPage\ 5.0 ProgId FrontPage.Editor.Document 
    HTTP-EQUIV=Content-Type text/html;\ charset=windows-1252
vti_progid :: FrontPage.Editor.Document
vti_cachedbodystyle :: 
vti_modifiedby :: User_Name
vti_charset :: windows-1252
vti_sourcecontrolcheckincomment :: Comment
vti_nexttolasttimemodified :: 5/6/2003 8:16:58 PM
vti_filesize :: 6439
vti_docstoretype :: 0
vti_language :: en-us
vti_generator :: Microsoft FrontPage 5.0
vti_timelastmodified :: 5/6/2003 8:59:25 PM
vti_title :: File_Title
vti_docstoreversion :: 2
vti_sourcecontrolcookie :: fp_internal
vti_sourcecontrolversion :: V2
vti_cachedneedsrewrite :: false
vti_timecreated :: 5/6/2003 8:16:58 PM
vti_cachedcustomprops :: vti_title
vti_cachedhastheme :: false

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.

See Also

Reference

SPFile Class

SPFile Members

Microsoft.SharePoint Namespace