Description
static void Main(string[] args)
{
string fileName = Path.GetRandomFileName();
File.Create(fileName).Dispose();
Console.WriteLine("File created.");
Console.WriteLine($"LastWriteTime: {File.GetLastWriteTime(fileName):o}");
Console.WriteLine($"LastWriteTimeUtc: {File.GetLastWriteTimeUtc(fileName):o}");
File.WriteAllText(fileName, "v1.1");
Console.WriteLine();
Console.WriteLine("File updated 1.");
Console.WriteLine($"LastWriteTime: {File.GetLastWriteTime(fileName):o}");
Console.WriteLine($"LastWriteTimeUtc: {File.GetLastWriteTimeUtc(fileName):o}");
Console.WriteLine();
Console.WriteLine($"Current time: {DateTime.Now:o}");
Console.WriteLine($"Current time: {DateTime.UtcNow:o}");
File.WriteAllText(fileName, "v1.2");
Console.WriteLine();
Console.WriteLine("File updated 2.");
Console.WriteLine($"LastWriteTime: {File.GetLastWriteTime(fileName):o}");
Console.WriteLine($"LastWriteTimeUtc: {File.GetLastWriteTimeUtc(fileName):o}");
}
Prints:
File created.
LastWriteTime: 2021-07-19T11:33:14.5400000-07:00
LastWriteTimeUtc: 2021-07-19T18:33:14.5400000Z
File updated 1.
LastWriteTime: 2021-07-19T11:33:14.5600000-07:00
LastWriteTimeUtc: 2021-07-19T18:33:14.5600000Z
Current time: 2021-07-19T11:33:14.5767122-07:00
Current time: 2021-07-19T18:33:14.5767587Z
File updated 2.
LastWriteTime: 2021-07-19T11:33:14.5600000-07:00
LastWriteTimeUtc: 2021-07-19T18:33:14.5600000Z
Note how after the second File.WriteAllText the LastWriteTime is the same as the first and the DateTime.Now in between is larger.
I see this behavior on WSL2 Ubuntu, but it probably affects any Unix.
This works correctly on Windows.
Regression?
No
Other information
Related issues:
#26964
#18870
Description
Prints:
Note how after the second
File.WriteAllTexttheLastWriteTimeis the same as the first and theDateTime.Nowin between is larger.I see this behavior on WSL2 Ubuntu, but it probably affects any Unix.
This works correctly on Windows.
Regression?
No
Other information
Related issues:
#26964
#18870