---
title: "How can you determine the creation time or last modified time of a file?"  
description: "How can you determine the creation time or last modified time of a file?"  
author: "Ravi Vishwakarma"  
published: 2025-05-07  
updated: 2025-05-07  
canonical: https://www.mindstick.com/interview/34093/how-can-you-determine-the-creation-time-or-last-modified-time-of-a-file  
category: "c#"  
tags: ["c#", "file handling"]  
reading_time: 3 minutes  

---

# How can you determine the creation time or last modified time of a file?

In C#, you can determine the **creation time**, **last modified time**, and **last access time** of a file using the `File.GetCreationTime`, `File.GetLastWriteTime`, and `File.GetLastAccessTime` methods from the `System.IO` namespace.

### Example: Get file timestamps

```cs
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string filePath = @"C:\example.txt";

        DateTime created = File.GetCreationTime(filePath);
        DateTime modified = File.GetLastWriteTime(filePath);
        DateTime accessed = File.GetLastAccessTime(filePath);

        Console.WriteLine("Created: " + created);
        Console.WriteLine("Last Modified: " + modified);
        Console.WriteLine("Last Accessed: " + accessed);
    }
}
```

### UTC versions (for consistency across time zones)

1. `File.GetCreationTimeUtc(filePath)`
2. `File.GetLastWriteTimeUtc(filePath)`
3. `File.GetLastAccessTimeUtc(filePath)`

### You can also set these times using:

1. `File.SetCreationTime(filePath, DateTime.Now)`
2. `File.SetLastWriteTime(...)`
3. `File.SetLastAccessTime(...)`

### Lists timestamps for all files in a folder?

C# example that **lists the creation time, last modified time, and last accessed time** for all files in a directory:

```cs
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string folderPath = @"C:\MyFolder"; // Change to your target folder

        if (Directory.Exists(folderPath))
        {
            string[] files = Directory.GetFiles(folderPath);

            foreach (string file in files)
            {
                DateTime created = File.GetCreationTime(file);
                DateTime modified = File.GetLastWriteTime(file);
                DateTime accessed = File.GetLastAccessTime(file);

                Console.WriteLine("File: " + Path.GetFileName(file));
                Console.WriteLine("  Created      : " + created);
                Console.WriteLine("  Last Modified: " + modified);
                Console.WriteLine("  Last Accessed: " + accessed);
                Console.WriteLine();
            }
        }
        else
        {
            Console.WriteLine("Directory not found: " + folderPath);
        }
    }
}
```

### Optional: Recursively include subfolders

Replace:

```cs
string[] files = Directory.GetFiles(folderPath);
```

With:

```cs
string[] files = Directory.GetFiles(folderPath, "*.*", SearchOption.AllDirectories);
```

This way, you get file timestamps for **all files including subdirectories**.

## Answers

### Answer by Ravi Vishwakarma

In C#, you can determine the **creation time**, **last modified time**, and **last access time** of a file using the `File.GetCreationTime`, `File.GetLastWriteTime`, and `File.GetLastAccessTime` methods from the `System.IO` namespace.

### Example: Get file timestamps

```cs
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string filePath = @"C:\example.txt";

        DateTime created = File.GetCreationTime(filePath);
        DateTime modified = File.GetLastWriteTime(filePath);
        DateTime accessed = File.GetLastAccessTime(filePath);

        Console.WriteLine("Created: " + created);
        Console.WriteLine("Last Modified: " + modified);
        Console.WriteLine("Last Accessed: " + accessed);
    }
}
```

### UTC versions (for consistency across time zones)

1. `File.GetCreationTimeUtc(filePath)`
2. `File.GetLastWriteTimeUtc(filePath)`
3. `File.GetLastAccessTimeUtc(filePath)`

### You can also set these times using:

1. `File.SetCreationTime(filePath, DateTime.Now)`
2. `File.SetLastWriteTime(...)`
3. `File.SetLastAccessTime(...)`

### Lists timestamps for all files in a folder?

C# example that **lists the creation time, last modified time, and last accessed time** for all files in a directory:

```cs
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string folderPath = @"C:\MyFolder"; // Change to your target folder

        if (Directory.Exists(folderPath))
        {
            string[] files = Directory.GetFiles(folderPath);

            foreach (string file in files)
            {
                DateTime created = File.GetCreationTime(file);
                DateTime modified = File.GetLastWriteTime(file);
                DateTime accessed = File.GetLastAccessTime(file);

                Console.WriteLine("File: " + Path.GetFileName(file));
                Console.WriteLine("  Created      : " + created);
                Console.WriteLine("  Last Modified: " + modified);
                Console.WriteLine("  Last Accessed: " + accessed);
                Console.WriteLine();
            }
        }
        else
        {
            Console.WriteLine("Directory not found: " + folderPath);
        }
    }
}
```

### Optional: Recursively include subfolders

Replace:

```cs
string[] files = Directory.GetFiles(folderPath);
```

With:

```cs
string[] files = Directory.GetFiles(folderPath, "*.*", SearchOption.AllDirectories);
```

This way, you get file timestamps for **all files including subdirectories**.


---

Original Source: https://www.mindstick.com/interview/34093/how-can-you-determine-the-creation-time-or-last-modified-time-of-a-file

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
