[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetFileTime(IntPtr hFile, ref long lpCreationTime,
ref long lpLastAccessTime, ref long lpLastWriteTime);
Private Declare Function SetFileTime Lib "kernel32" ( _
ByVal hFile As System.IntPtr, _
ByRef lpCreationTime As Long, _
ByRef lpLastAccessedTime As Long, _
ByRef lpLastWriteTime As Long) As Boolean
None.
None.
Please add some!
public static void SetFileTimes(intPtr hFile, DateTime creationTime, DateTime accessTime, DateTime writeTime)
{
long lCreationTime = creationTime.ToFileTime();
long lAccessTime = accessTime.ToFileTime();
long lWriteDTime = writeTime.ToFileTime();
if(!SetFileTime(hFile, ref lCreationTime, ref lAccessTime, ref lWriteTime))
{
throw new Win32Exception();
}
}
''' -----------------------------------------------------------------------------
''' <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
Do you know one? Please contribute it!