2010-09-28 7 views
5

Necesito modificar las marcas de tiempo 'creado' (si existe), 'modificado' y 'accedido' de un archivo. Idealmente, esta sería una solución independiente de la plataforma.C++: ¿Cómo modificar la marca de tiempo 'creada' de un archivo?

He buscado en las bibliotecas de impulso pero no veo nada relevante. Lo más cercano que encontré a algo relevante es this para Windows.

¿Alguien puede ayudar? Gracias.

+4

Esa es una pregunta de entrevista clásica para los administradores de Unix, "¿cómo ver la fecha y hora de creación del archivo?". La respuesta es: no existe tal cosa. – Cubbi

Respuesta

7

nunca los he usado, pero supongo que usted está buscando para las funciones de atributos:
http://www.boost.org/doc/libs/1_44_0/libs/filesystem/v2/doc/reference.html#Attribute-functions

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); 
+0

Nota: El segundo de ellos establecerá la última vez de modificación, en caso de que sea lo deseado. –

+0

¿Y cómo esta respuesta ayuda con la modificación del tiempo de señalización 'creado'? – killdaclick

+0

@killdaclick afaik no hay funcionalidad en boost que proporcione el tiempo de creación. Creo que si lo desea, tendría que escribir su propia función con diferentes implementaciones para las plataformas compatibles. – Daniel

1

Utilice la función utime y utimbuf struct. El método está disponible en Windows pero se nombra con un guión bajo como _utime.

Actualización: utime sólo se le permite cambiar la acceso y modificación veces (a través de actime y modtime campos utimbuf 's). Esto es muy probable porque muchos sistemas de archivos estilo Unix no registran creación tiempo en ninguna parte.

2

Another, el código un poco más sencillo snippet para Windows.

0

No todos los populares sistemas de archivos de soporte 'creados' y marcas de tiempo '' que se accede: http://en.wikipedia.org/wiki/Comparison_of_file_systems#Metadata

sistemas de ficheros de Windows hacen, pero podría no ser una buena idea para depender de ellos ahora si necesita portabilidad. Al observar esa tabla, me da la impresión de que existe una tendencia a agregar soporte para ellos en sistemas de archivos más nuevos.

Cuestiones relacionadas