C ++: Как изменить файлы «Созданный» Timestamp?
-
26-09-2019 - |
Вопрос
Мне нужно изменить «созданные» (если существует), «модифицированные» и «доступные» временные метки файла. В идеале это будет независимое платформу решение.
Я оглянулся вокруг библиотек Boost, но не вижу ничего актуального. Ближайший я нашел что-то отношение это для окон.
Может кто-нибудь помочь? Спасибо.
Решение
Я никогда не использовал их, но я думаю, что вы ищете функции атрибута:
http://www.boost.org/doc/libs/1_44_0/libs/filesystem/v2/doc/reference.html#attribute-functions.
Есть также функции для последней модификации:
template <class Path> std::time_t last_write_time(const Path& p);
template <class Path> void last_write_time(const Path& p, const std::time_t new_time);
Другие советы
Другая, немного более простым кодовым фрагментом для Windows.
Использовать utime
функция и utimbuf
распределять Метод доступен в Windows, но называется ведущим подчеркиванием как _utime
.
Обновлять: utime
только позволяет вам изменить доступ а также модификация раз (через utimbuf
С. actime
а также modtime
поля). Это, скорее всего, потому что многие файловые системы в стиле Unix не записывают творчество Время где угодно.
Не все популярные файловые системы поддерживают «созданные» и «доступные» метки времени: http://en.wikipedia.org/wiki/comparison_of_file_systems#метаданные
Windows FileSystems делают, но не может быть неплохой идеей, чтобы зависеть от них сейчас, если вам нужна портативность. Глядя на этот стол, у меня сложилось впечатление, что есть тенденция, чтобы добавить их в новее файловые системы.