Я не верю, что это ошибка, я думаю, что это по замыслу. Я столкнулся с этим несколько месяцев назад сам.
Рассмотрим приложение, которое создает временную рабочую копию файла, который вы только что открыли. Во время работы ваши изменения записываются во временный файл. Когда вы закончите и решите сохранить файл, приложение удалит оригинал и переименует или скопирует временный файл в оригинальное имя файла. Это не очень распространено, но это не редкость (многие старые и простые приложения работают таким образом ... текстовые редакторы и тому подобное).
В приведенном выше случае, каждый раз, когда вы сохраняете файл, дата его создания всегда будет соответствовать последнему измененному!
Я не знаю, что за хлам происходит за кулисами, возможно, кто-то с какой-то проницательностью предоставит более подробную информацию. Кроме того, некоторые файловые системы вообще не хранят даты создания, только даты изменения и доступа (например, ext2).
Обновление: я нашел следующее от авторов xxcopy по адресу http://www.xxcopy.com/xxcopy15.htm , которое может относиться к тому, что вы делаете:
Поскольку использование даты создания файла имеет серьезные проблемы, мы обычно не рекомендуем использовать эту дату
Проблемы с датой создания файла (File-Create date),
Проблемы даты создания файла могут быть связаны с несоответствием в различных утилитах управления файлами Microsoft. Похоже, что цель трех разных
вариантов значений даты файла никогда не была четко определена разработчиком функции. Мы, как разработчики программного обеспечения, не сталкивались с официальными документами на эту тему.
Я нашел это с Win32 DeleteFile на Windows 7 SP1.
Попробовал несколько хитростей, чтобы заставить его использовать правильную «созданную» дату, но без радости. Если вы подождете 2-3 минуты после удаления файла, а затем создадите новый, дата будет правильной. Вероятно, нужна процедура очистки всех файлов win32.
Это может привести к неприятным ошибкам, на мой взгляд, довольно сомнительная вещь, неопрятный дизайн. Файл был удален, пропал, не должно быть таких «ореолов». Если вы беспокоитесь, предложите использовать
win32 SetFileTime
.источник