| Classes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| File types | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <filesystem> | ||
std::filesystem::file_time_type last_write_time(conststd::filesystem::path& p); | (1) | (since C++17) |
std::filesystem::file_time_type last_write_time(conststd::filesystem::path& p, std::error_code& ec)noexcept; | (2) | (since C++17) |
void last_write_time(conststd::filesystem::path& p, std::filesystem::file_time_type new_time); | (3) | (since C++17) |
void last_write_time(conststd::filesystem::path& p, std::filesystem::file_time_type new_time, | (4) | (since C++17) |
st_mtime of the POSIXstat (symlinks are followed).The non-throwing overload returnsfile_time_type::min() on errors.Contents |
| p | - | path to examine or modify |
| new_time | - | new modification time |
| ec | - | out-parameter for error reporting in the non-throwing overload |
Any overload not markednoexcept may throwstd::bad_alloc if memory allocation fails.
It is not guaranteed that immediately after setting the write time, the value returned by(1,2) is the same as what was passed as the argument to(3,4) because the file system's time may be more granular thanfilesystem::file_time_type.
#include <chrono>#include <filesystem>#include <format>#include <fstream>#include <iostream> usingnamespace std::chrono_literals; int main(){auto p=std::filesystem::temp_directory_path()/"example.bin";std::ofstream{p.c_str()}.put('a');// create file std::filesystem::file_time_type ftime= std::filesystem::last_write_time(p);std::cout<<std::format("File write time is {}\n", ftime); // move file write time 1 hour to the future std::filesystem::last_write_time(p, ftime+ 1h); // read back from the filesystem ftime= std::filesystem::last_write_time(p);std::cout<<std::format("File write time is {}\n", ftime); std::filesystem::remove(p);}
Possible output:
File write time is 2023-09-04 19:33:24.702639224File write time is 2023-09-04 20:33:24.702639224
(C++17) | represents file time values (typedef)[edit] |
| gets the time of the last data modification of the file to which the directory entry refers (public member function of std::filesystem::directory_entry)[edit] |