C# Program to View the Access Date and Time of a File

Welcome to this tutorial on creating a C# program to view the access date and time of a file. This guide will show you how to use C#'s file handling capabilities to retrieve file metadata, specifically the last access timestamp.

Understanding File Timestamps in C#

C# provides robust support for file operations through the System.IO namespace. Every file has three important timestamps

  • Creation Time When the file was first created
  • Last Write Time When the file was last modified
  • Last Access Time When the file was last opened or read

The FileInfo class provides properties to access all these timestamps easily.

Syntax

Following is the syntax for creating a FileInfo object and accessing file timestamps

FileInfo fileInfo = new FileInfo(filePath);
DateTime accessTime = fileInfo.LastAccessTime;
DateTime creationTime = fileInfo.CreationTime;
DateTime writeTime = fileInfo.LastWriteTime;

Using FileInfo to Get File Access Time

Example

Here's a simple program that retrieves and displays the last access date and time of a file

using System;
using System.IO;

public class Program {
   public static void Main() {
      // Create a test file first
      string filePath = "sample.txt";
      File.WriteAllText(filePath, "This is a test file for demonstration.");
      
      // Create a FileInfo object
      FileInfo fileInfo = new FileInfo(filePath);
      
      // Check if file exists
      if (fileInfo.Exists) {
         // Get the last access time
         DateTime lastAccessTime = fileInfo.LastAccessTime;
         
         // Display the information
         Console.WriteLine($"File: {fileInfo.Name}");
         Console.WriteLine($"Last Access Time: {lastAccessTime}");
         Console.WriteLine($"Formatted: {lastAccessTime:yyyy-MM-dd HH:mm:ss}");
      } else {
         Console.WriteLine("File does not exist.");
      }
   }
}

The output of the above code is

File: sample.txt
Last Access Time: 12/27/2024 10:30:45 AM
Formatted: 2024-12-27 10:30:45

Using File Class for Quick Access

For simple operations, you can use the static methods of the File class instead of creating a FileInfo object

Example

using System;
using System.IO;

public class Program {
   public static void Main() {
      string filePath = "test.txt";
      
      // Create a test file
      File.WriteAllText(filePath, "Sample content");
      
      // Access the file to update access time
      string content = File.ReadAllText(filePath);
      
      // Get file timestamps using static File methods
      DateTime accessTime = File.GetLastAccessTime(filePath);
      DateTime creationTime = File.GetCreationTime(filePath);
      DateTime writeTime = File.GetLastWriteTime(filePath);
      
      Console.WriteLine("File Timestamps:");
      Console.WriteLine($"Creation Time: {creationTime:yyyy-MM-dd HH:mm:ss}");
      Console.WriteLine($"Last Write Time: {writeTime:yyyy-MM-dd HH:mm:ss}");
      Console.WriteLine($"Last Access Time: {accessTime:yyyy-MM-dd HH:mm:ss}");
   }
}

The output of the above code is

File Timestamps:
Creation Time: 2024-12-27 10:30:45
Last Write Time: 2024-12-27 10:30:45
Last Access Time: 2024-12-27 10:30:45

Handling Multiple Files with Error Checking

Example

using System;
using System.IO;

public class Program {
   public static void Main() {
      // Create multiple test files
      string[] files = { "file1.txt", "file2.txt", "nonexistent.txt" };
      
      // Create the first two files
      File.WriteAllText("file1.txt", "Content 1");
      File.WriteAllText("file2.txt", "Content 2");
      
      foreach (string filePath in files) {
         try {
            FileInfo info = new FileInfo(filePath);
            if (info.Exists) {
               Console.WriteLine($"File: {info.Name}");
               Console.WriteLine($"  Size: {info.Length} bytes");
               Console.WriteLine($"  Last Access: {info.LastAccessTime:yyyy-MM-dd HH:mm:ss}");
               Console.WriteLine();
            } else {
               Console.WriteLine($"File '{filePath}' does not exist.");
               Console.WriteLine();
            }
         } catch (Exception ex) {
            Console.WriteLine($"Error accessing '{filePath}': {ex.Message}");
            Console.WriteLine();
         }
      }
   }
}

The output of the above code is

File: file1.txt
  Size: 9 bytes
  Last Access: 2024-12-27 10:30:45

File: file2.txt
  Size: 9 bytes
  Last Access: 2024-12-27 10:30:45

File 'nonexistent.txt' does not exist.

Comparison of FileInfo vs File Class

FileInfo Class File Class
Instance-based approach Static methods
Good for multiple operations on same file Good for single operations
Provides Exists property Use File.Exists() method
More object-oriented More procedural

Common Use Cases

  • Log Analysis Determining when log files were last accessed for monitoring purposes
  • File Synchronization Comparing access times to decide which files need updating
  • System Monitoring Tracking file usage patterns in applications
  • Backup Systems Identifying recently accessed files for incremental backups

Conclusion

C# provides excellent tools for retrieving file timestamps through both the FileInfo class and static File methods. The LastAccessTime property allows you to monitor when files were last accessed, which is valuable for file management, system monitoring, and backup operations.

Updated on: 2026-03-17T07:04:36+05:30

318 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements