FromFileTime Method

DateTimeOffset.FromFileTime Method (Int64)


Converts the specified Windows file time to an equivalent local time.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public static DateTimeOffset FromFileTime(
	long fileTime


Type: System.Int64

A Windows file time, expressed in ticks.

Return Value

Type: System.DateTimeOffset

An object that represents the date and time of fileTime with the offset set to the local time offset.

Exception Condition

filetime is less than zero.


filetime is greater than DateTimeOffset.MaxValue.Ticks.

A Windows file time is a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed since 12:00 midnight, January 1, 1601 A.D. (C.E.) Coordinated Universal Time (UTC). Windows uses a file time to record when an application creates, accesses, or writes to a file.

A Windows file time is directly accessible through the Windows API by calling the GetFileTime function, which returns a FILETIME structure. The single function parameter is the handle of the file whose file time information is to be retrieved. The file handle is retrieved by calling the CreateFile function. The FILETIME structure's dwHighDateTime member contains the four high-order bytes of the file time, and its dwLowDateTime member contains the four low-order bytes. The example that follows illustrates how to retrieve Windows file time values and convert them to DateTimeOffset values.

Windows file time values can also be created from DateTime values by calling the DateTime.ToFileTime and DateTime.ToFileTimeUtc methods, and from DateTimeOffset values by calling the DateTimeOffset.ToFileTime method.

The following example uses the Windows API to retrieve the Windows file times for the WordPad executable.

using System;
using System.Management;

// This example shows synchronous consumption of events. 
// The client is blocked while waiting for events. 

public class EventWatcherPolling 
    public static int Main(string[] args) 
        // Create event query to be notified within 1 second of 
        // a change in a service
        WqlEventQuery query = 
            new WqlEventQuery("__InstanceCreationEvent", 
            new TimeSpan(0,0,1), 
            "TargetInstance isa \"Win32_Process\"");

        // Initialize an event watcher and subscribe to events 
        // that match this query
        ManagementEventWatcher watcher =
            new ManagementEventWatcher();
        watcher.Query = query;
        // times out watcher.WaitForNextEvent in 5 seconds
        watcher.Options.Timeout = new TimeSpan(0,0,5);

        // Block until the next event occurs 
        // Note: this can be done in a loop if waiting for 
        //        more than one occurrence
            "Open an application (notepad.exe) to trigger an event.");
        ManagementBaseObject e = watcher.WaitForNextEvent();

        //Display information from the event
            "Process {0} has been created, path is: {1}", 

        //Cancel the subscription
        return 0;

Universal Windows Platform
Available since 4.5
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
© 2015 Microsoft