std::filesystem::last_write_time
Von cppreference.com
< cpp | filesystem
| Definiert in Header <filesystem> |
||
| std::filesystem::file_time_type last_write_time( const std::filesystem::path& p ); |
(1) | (seit C++17) |
| std::filesystem::file_time_type last_write_time( const std::filesystem::path& p, std::error_code& ec ) noexcept; |
(2) | (seit C++17) |
| void last_write_time( const std::filesystem::path& p, std::filesystem::file_time_type new_time ); |
(3) | (seit C++17) |
| void last_write_time( const std::filesystem::path& p, std::filesystem::file_time_type new_time, |
(4) | (seit C++17) |
1,2) Gibt die Zeit der letzten Änderung von p zurück, ermittelt wie durch den Zugriff auf das Element
st_mtime der POSIX stat-Struktur (Symlinks werden verfolgt). Die nicht-werfende Überladung gibt file_time_type::min() bei Fehlern zurück.3,4) Ändert die Zeit der letzten Änderung von p, als ob durch POSIX
futimens (Symlinks werden verfolgt).Inhalt |
[edit] Parameter
| p | - | Pfad zum Untersuchen oder Ändern |
| new_time | - | neue Änderungszeit |
| ec | - | Ausgabeparameter für die Fehlerberichterstattung in der nicht auslösenden Überladung |
[edit] Rückgabewert
1,2) Die Zeit der letzten Änderung von p.
3,4) (keine)
[edit] Ausnahmen
Jede Überladung, die nicht als noexcept markiert ist, kann std::bad_alloc auslösen, wenn die Speicherzuweisung fehlschlägt.
1,3) Wirft std::filesystem::filesystem_error bei zugrundeliegenden OS-API-Fehlern, konstruiert mit p als erstem Pfadargument und dem OS-Fehlercode als Fehlercodeargument.
2,4) Setzt einen std::error_code&-Parameter auf den OS-API-Fehlercode, wenn ein OS-API-Aufruf fehlschlägt, und führt ec.clear() aus, wenn keine Fehler auftreten.
[edit] Hinweise
Es wird nicht garantiert, dass unmittelbar nach dem Setzen der Schreibzeit der Wert, der von (1,2) zurückgegeben wird, derselbe ist wie das Argument, das an (3,4) übergeben wurde, da die Zeit des Dateisystems eine höhere Granularität als filesystem::file_time_type haben kann.
[edit] Beispiel
Führen Sie diesen Code aus
#include <chrono> #include <filesystem> #include <format> #include <fstream> #include <iostream> using namespace 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); }
Mögliche Ausgabe
File write time is 2023-09-04 19:33:24.702639224 File write time is 2023-09-04 20:33:24.702639224
[edit] Siehe auch
| (C++17) |
repräsentiert Datei-Zeitwerte (Typedef) |
| holt die Zeit der letzten Datenmodifikation der Datei, auf die der Verzeichniseintrag verweist (öffentliche Elementfunktion von std::filesystem::directory_entry) |