Frage

Ich brauche die ‚erstellt‘ (falls vorhanden), ‚geändert‘ und ‚Zugriff‘ Zeitstempel einer Datei zu ändern. Im Idealfall würde dies eine plattformunabhängige Lösung sein.

Ich habe um die Boost-Bibliotheken gesucht, aber ich kann nichts relevant sehen. Der nächste ich relevant etwas gefunden habe, ist diese für Windows.

Kann mir jemand helfen? Danke.

War es hilfreich?

Lösung

Ich habe sie nie benutzt, aber ich denke, dass Sie für die Attributfunktionen suchen:
http: //www.boost .org / doc / libs / 1_44_0 / libs / filesystem / v2 / doc / reference.html # Attribut-Funktionen

Darüber hinaus gibt es Funktionen für die letzte Änderung:

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

Andere Tipps

Ein weiterer , etwas einfacher Code-Schnipsel für Windows .

Mit der utime Funktion und utimbuf struct. Die Methode ist in Windows, sondern mit einem führenden Unterstrich als _utime .

Update: utime nur können Sie die Zugang ändern und Änderung Zeiten (über utimbuf der actime und modtime Felder). Dies ist höchstwahrscheinlich, weil viele Unix-Dateisysteme erfassen nicht die Schöpfung Zeit an jedem Ort.

Nicht alle gängigen Dateisysteme Unterstützung 'erstellt' und 'griffenen' Zeitstempel: http: // en. wikipedia.org/wiki/Comparison_of_file_systems#Metadata

Windows-Dateisystemen zu tun, aber es könnte nicht eine gute Idee, hängen von ihnen jetzt, wenn Sie Portabilität benötigen. Ich einen Eindruck an diesem Tisch Blick bekommen, dass es einen Trend Unterstützung obwohl sie in neueren Dateisystem hinzuzufügen ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top