2013-11-30 5 views
4

Я пытаюсь получить последнюю измененную дату файла в Windows 7 - я только что отредактировал его, поэтому в свойствах последнее измененное значение указано как 11/30/2013 4:55 PM.Получить последнее время записи возвращает странное значение

Однако, когда я получить доступ к файлу, используя:

DateTime lastMod = File.GetLastWriteTime(file); 

I выход значение:

MessageBox.Show(lastMod.toString()); 

Это всегда дает 12/31/1600 6:00:00 PM, независимо от того, какой файл я работаю с, независимо от создания время, время модификации и т. д.

ответ

9

Я подозреваю, вы используете неправильное имя файла. В documentation for GetLastWriteTime указывает:

Если файл описан в пути параметр не существует, этот метод возвращает 12:00 полночь, 1 января, 1601 AD (CE) Универсальное координированное время (UTC), с учетом местных время.

Как это значение вы получаете, это указывает на файл, описанный в пути параметра, вполне возможно, не существует - так что вы должны проверить значение file и иметь в виду, что если это родственник filename, это может быть не относительно каталога, который вы ожидаете.

+1

Должно быть, я посмотрю. Почему «GetLastWriteTime» предназначен для возврата значения «по умолчанию», подобного этому, вместо того, чтобы генерировать исключение? – Wilson

+2

@Wilson: Я подозреваю, что это то, что делает основной API файловой системы. Я согласен, что это немного странно. –

Смежные вопросы