std::filesystem::last_write_time
Definido en el archivo de encabezado <filesystem> | ||
std::filesystem::file_time_type last_write_time(conststd::filesystem::path& p); std::filesystem::file_time_type last_write_time(conststd::filesystem::path& p, | (1) | (desde C++17) |
void last_write_time(conststd::filesystem::path& p, std::filesystem::file_time_type new_time); | (2) | (desde C++17) |
p
, determinado como si se accediera al miembro st_mtime
de la estructura stat
de POSIX (se siguen los enlaces simbólicos). La sobrecarga que no lanza devuelve file_time_type::min() si ocurren errores.p
, como si fuera por la función futimens
de POSIX (se siguen los enlaces simbólicos).Contenido |
[editar]Parámetros
p | - | La ruta de acceso a examinar o modificar. |
new_time | - | El nuevo tiempo de modificación. |
ec | - | El parámetro de salida para informe de errores en la sobrecarga que no lanza. |
[editar]Valor de retorno
p
.[editar]Excepciones
La sobrecarga que no toma un parámetro std::error_code& lanza filesystem::filesystem_error en los errores de la API del sistema operativo subyacente, construido con p
como el primer argumento de la ruta de acceso y el código de error del sistema operativo como el argumento del código de error. La sobrecarga que toma un parámetro std::error_code& lo establece en el código de error de la API del sistema operativo si una llamada a la API del sistema operativo falla, y ejecuta ec.clear() si no ocurren errores. Cualquier sobrecarga que no está marcada con noexcept puede lanzar std::bad_alloc si la asignación de memoria falla.
[editar]Notas
No se garantiza que inmediatamente después de establecer el tiempo de escritura, el valor devuelto por (1) sea el mismo que se pasó como argumento a (2) porque el tiempo del sistema de archivos puede ser más granular que filesystem::file_time_type.
[editar]Ejemplo
#include <iostream>#include <chrono>#include <iomanip>#include <fstream>#include <filesystem> usingnamespace std::chrono_literals;int main(){auto p =std::filesystem::temp_directory_path()/"ejemplo.bin";std::ofstream(p.c_str()).put('a');// crear archivo auto print_last_write_time =[](std::filesystem::file_time_typeconst& ftime){std::time_t cftime =std::chrono::system_clock::to_time_t(std::chrono::file_clock::to_sys(ftime));std::cout<<"El tiempo de escritura del archivo es "<<std::asctime(std::localtime(&cftime));}; auto ftime = std::filesystem::last_write_time(p); print_last_write_time(ftime); std::filesystem::last_write_time(p, ftime + 1h);// mover el tiempo de escritura del// archivo una hora hacia el futuro ftime = std::filesystem::last_write_time(p);// leer desde el sistema de archivos print_last_write_time(ftime); std::filesystem::remove(p);}
Posible salida:
El tiempo de escritura del archivo es Domingo 9 de mayo de 2021 23:29:58 El tiempo de escritura del archivo es Lunes 10 de mayo de 2021 00:29:58
[editar]Véase también
(C++17) | Representa los valores de tiempo de un archivo. (typedef) |
Obtiene o establece la fecha y la hora de la última modificación de datos del archivo al que se refiere la entrada de directorio. (función miembro pública de std::filesystem::directory_entry ) |