Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

SetFileTime (kernel32)
 
.
Summary

C# Signature:

[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetFileTime(IntPtr hFile, ref long lpCreationTime, ref long lpLastAccessTime, ref long lpLastWriteTime);

VB.Net Signature:

<DllImport("kernel32.dll", SetLastError := True)> _
Private Shared Function SetFileTime(ByVal hFile As IntPtr, ByRef lpCreationTime As Long, ByRef lpLastAccessTime As Long, ByRef lpLastWriteTime As Long) As Boolean
End Function

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

C# Sample Code:

  public static void SetFileTimes(IntPtr hFile, DateTime creationTime, DateTime accessTime, DateTime writeTime)
  {
    long lCreationTime    = creationTime.ToFileTime();
    long lAccessTime    = accessTime.ToFileTime();
    long lWriteTime        = writeTime.ToFileTime();

    if(!SetFileTime(hFile, ref lCreationTime, ref lAccessTime, ref lWriteTime))
    {
        throw new Win32Exception();
    }
  }

VB.Net Sample Code:

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Will transfer the Time Stamps from the Source file to the Target file.
    ''' </summary>
    ''' <param name="oSource_File_Info">The file that the time stamps will be transfered from.</param>
    ''' <param name="oTarget_File_Info">The file that the time stamps will be transfered to.</param>
    ''' <remarks>
    ''' Will transfer the Time Stamps from the Source file to the Target file.
    ''' </remarks>
    ''' <history>
    '''     [CHope]    3/2/2006    Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public Shared Sub Synchronize_Time_Stamps(ByVal oSource_File_Info As System.IO.FileInfo, ByVal oTarget_File_Info As System.IO.FileInfo)

    Dim oFile_Stream As System.IO.FileStream

    ' Open The File So The Time Stamps Can Be Updated
    oFile_Stream = System.IO.File.Open(oTarget_File_Info.FullName, System.IO.FileMode.Open, System.IO.FileAccess.Write)

    ' Call The API That Should Set The Time Stamps For The File
    If Not SetFileTime(oFile_Stream.Handle, oSource_File_Info.CreationTime.ToFileTime, oSource_File_Info.LastAccessTime.ToFileTime,     oSource_File_Info.LastWriteTime.ToFileTime) Then

        System.Windows.Forms.MessageBox.Show("Unable to set " & oTarget_File_Info.Name & " time stamps.", "Synchronization Error")

    End If

    ' Close The Stream
    oFile_Stream.Close()

    End Sub

Alternative Managed API:

Do you know one? Please contribute it!

Documentation
SetFileTime on MSDN

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

 
Access PInvoke.net directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version
Revisions