C ++: Cómo modificar un archivos creados '' marca de tiempo?
-
26-09-2019 - |
Pregunta
Me resulta necesario modificar el 'creado' (si existe), 'modificado' y 'visitada' marcas de tiempo de un archivo. Lo ideal sería que esto sería una solución independiente de la plataforma.
He mirado en torno a las bibliotecas Boost, pero no puedo ver nada relevante. El más cercano que he encontrado para algo relevante es este para Windows.
ayuda a nadieCan? Gracias.
Solución
He nunca los usa, pero supongo que usted está buscando para las funciones de atributos:
http: //www.boost .org / doc / libs / 1_44_0 / libs / sistema de archivos / v2 / doc / reference.html # atributo de funciones
También hay funciones de la última modificación:
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);
Otros consejos
Otra , un poco más sencillo fragmento de código para Windows .
Utilice el utime
función y utimbuf
estructura. El método está disponible en Windows, pero se nombra con un subrayado inicial como _utime
.
Actualización: utime
sólo se le permite cambiar el Acceso y modificación (a través de los tiempos utimbuf
de actime
y campos modtime
). Esto es más probable debido a que muchos sistemas de archivos basados ??en Unix no registran el creación en cualquier momento.
No todos los populares sistemas de archivos de soporte 'creada' y 'accedida' marcas de tiempo: http: // en. wikipedia.org/wiki/Comparison_of_file_systems#Metadata
sistemas de ficheros de Windows hacen, pero podría no ser una buena idea a depender de ellos ahora si necesita portabilidad. En cuanto a esa mesa me da la impresión de que hay una tendencia a añadir soporte para ellos en los nuevos sistemas de ficheros sin embargo.