Get Last Write Time is returning a strange value
Asked Answered
B

1

5

I'm trying to get the last modified date of a file in Windows 7 - I just edited it, so in the properties, the Last Modified value is listed as 11/30/2013 4:55 PM.

However, when I access the file using:

DateTime lastMod = File.GetLastWriteTime(file);

I output the value:

MessageBox.Show(lastMod.toString());

This always gives 12/31/1600 6:00:00 PM, regardless of which file I'm working with, regardless of creation time, modification time, etc.

Bacciform answered 30/11, 2013 at 23:5 Comment(0)
C
12

I suspect you're using the wrong file name. The documentation for GetLastWriteTime specifies:

If the file described in the path parameter does not exist, this method returns 12:00 midnight, January 1, 1601 A.D. (C.E.) Coordinated Universal Time (UTC), adjusted to local time.

As that's the value you're getting, it suggests the file described in the path parameter quite possibly doesn't exist - so you should check the value of file and bear in mind that if it's a relative filename, it might not be relative to the directory you're expecting.

Castrate answered 30/11, 2013 at 23:8 Comment(2)
Must be, I'll take a look. Why is GetLastWriteTime designed to return a "default" value like that, rather than throw an exception?Bacciform
@Wilson: I suspect that's just what the underlying file system API does. I agree it seems a little strange.Castrate

© 2022 - 2024 — McMap. All rights reserved.