2010-09-28 3 views
5

Мне нужно изменить «созданный» (если существует), «измененный» и «доступный» временные метки файла. В идеале это было бы платформо-независимое решение.C++: Как изменить временную метку файла?

Я осмотрел библиотеки ускорения, но я не вижу ничего значимого. Ближайшим, я нашел что-то актуальное, является this для Windows.

Может ли кто-нибудь помочь? Благодарю.

+4

Это классический вопрос об интервью для администраторов Unix, «как просмотреть временную метку создания файла?». Ответ таков: такого не бывает. – Cubbi

ответ

7

Я никогда не использовал их, но я думаю, что вы ищете функцию атрибутов:
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); 
+0

Примечание: второе из них установит последнее время модификации, в случае, если это необходимо. –

+0

И как этот ответ помогает с изменением времени создания «созданного»? – killdaclick

+0

@killdaclick afaik нет функции в boost, которая обеспечивает время создания. я думаю, если вы хотите, чтобы вам пришлось писать свою собственную функцию с различными реализациями для поддерживаемых платформ – Daniel

1

Использование функции utime и utimbuf struct. Этот метод доступен в Windows, но с лидирующим знаком подчеркивается как _utime.

Update: utime только позволяет изменить доступ и модификации раз (через actime и modtime полей utimbuf «s). Это, скорее всего, потому, что многие файловые системы в стиле Unix не записывают создание времени в любом месте.

2

Another, немного проще код фрагмент для Windows.

0

Не все популярные файловые системы поддержки «создали» и «доступ» временные метки: http://en.wikipedia.org/wiki/Comparison_of_file_systems#Metadata

файловые системы Windows, сделать, но это не может быть хорошей идеей, чтобы зависеть от них теперь, если вам нужна портативность. Глядя на эту таблицу, у меня создается впечатление, что есть тенденция добавлять поддержку для них в новых файловых системах.

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