2016-09-06 2 views
-1

В обозревателе файлов Windows есть возможность сортировать файлы на основе вкладки с именем Дата. Я хотел бы получить эту информацию о дате файла в коде (C#).Получение атрибута даты файла

(Это отличается от даты последней модификации и Created, а также с даты, предусмотренной методом File.GetLastWriteTime().)

Как это возможно?

+0

Категория в Проводнике помечена как «Дата изменена», и она действительно соответствует методу «File.GetLastWriteTime». Как вы получаете разные даты? –

+0

@CodyGray На самом деле есть столбец «Дата», но по умолчанию я не показываю его. – hankide

+1

Мне кажется, что «Дата» - это дата создания. Вопрос может быть намного яснее. Возможно, несоответствие - это время местного времени против UTC? Мы не должны догадываться. –

ответ

0

Столбец Date сравнивает дату создания и изменения и возвращает более ранние из этих двух. Несмотря на то, что нет прямого способа получить это, используя класс File, вы можете просто выполнить сравнение самостоятельно и использовать более раннее значение.

Вот простой (хотя и не очень читаемый) способ получить более раннюю из двух дат:

new DateTime(Math.Min(yourFile.GetCreationTime().Ticks, yourFile.GetLastWriteTime().Ticks)) 

Вот и скриншот, который показывает Date столбец всегда быть ранее один из Date modified и Date created. Date column differences

Edit: Причины даты изменений будучи ранее даты создания является то, что файлы в моем примере только что распаковали из архива почтового индекса.

+0

Ум боится, как дата изменения может быть раньше даты создания. Возможно, вы имели в виду, что он выбирает * самый последний * (т. Е. Позже) из двух? –

+0

Это, безусловно, возможно при работе с архивами. Я забыл упомянуть, что файлы на моем скриншоте только что были несжаты на диск из zip-файла. – hankide

+0

Кажется логичным, большое спасибо! – florien

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