Was gilt unter Windows als Dateizugriff?
Auge
- python
- windows
Hallo
Ich laboriere gerade am Thema Dateizugriffe unter Windows herum. Ich möchte mit Python den Zeitstempel des letzten Zugriffs auf eine Datei ermitteln und komme aus dem Wundern nicht heraus. Ich kann mit den zwei üblichen Methoden (os.stat
und os.path
) sowohl den Zeitpunkt der Erstellung der Datei als auch den Zeitpunkt der letzten Änderung ermitteln und erhalte die auch vom Betriebssystem gemeldeten Werte. Soweit, so gut.
Nur der Zeitpunkt des letzten Zugriffs auf die Datei ist für mich nicht nachvollziehbar. Er liegt mit beiden Methoden zwischen den Zeitpunkten der Dateierstellung und der letzten Änderung. Hier der Code für die Abfragen auf eine banale Textdatei.
Methode #1, Abfrage mit os.stat
:
datei = os.path.join(os.getcwd(), 'ablage\\test.txt')
dateiErstellungStat = os.stat(datei).st_ctime
dateiZugriffStat = os.stat(datei).st_atime
dateiAenderungStat = os.stat(datei).st_mtime
# Ausgabe mit unformatierten Zeitstempeln
print("os.stat; Erstellung: {0}, letzter Zugriff: {1}, letzte Änderung: {2}".format(*(dateiErstellungStat, dateiZugriffStat, dateiAenderungStat)))
# Ausgabe
# os.stat; Erstellung: 1457097122.0384927, letzter Zugriff: 1460984078.0165174, letzte Änderung: 1461576324.0153048
Methode #2, Abfrage mit os.path
:
dateiErstellungPath = os.path.getctime(datei)
dateiZugriffPath = os.path.getatime(datei)
dateiAenderungPath = os.path.getmtime(datei)
print("os.path; Erstellung: {0}, letzter Zugriff: {1}, letzte Änderung: {2}".format(*(dateiErstellungPath, dateiZugriffPath, dateiAenderungPath)))
# Ausgabe
# os.path; Erstellung: 1457097122.0384927, letzter Zugriff: 1460984078.0165174, letzte Änderung: 1461576324.0153048
Die Datei wurde am 4.3.16 (1457097122.0384927) erstellt. Sie wurde heute (25.4.16) zuletzt geändert (1461576324.0153048). Warum liegt aber der letzte Zugriff zwischen diesen Daten am 18.4.16 (1460984078.0165174), als ich die Datei für einen Test in das Verzeichnis, in dem sie jetzt liegt, verschob?
Was also gilt für Windows als Zugriff auf eine Datei?
Tschö, Auge
Tach,
Die Datei wurde am 4.3.16 (1457097122.0384927) erstellt. Sie wurde heute (25.4.16) zuletzt geändert (1461576324.0153048). Warum liegt aber der letzte Zugriff zwischen diesen Daten am 18.4.16 (1460984078.0165174), als ich die Datei für einen Test in das Verzeichnis, in dem sie jetzt liegt, verschob?
„NTFS delays updates to the last access time for a file by up to one hour after the last access. NTFS also permits last access time updates to be disabled. Last access time is not updated on NTFS volumes by default. “ - https://msdn.microsoft.com/en-us/library/ms724320(VS.85).aspx
mfg
Woodfighter
Hallo
Die Datei wurde am 4.3.16 (1457097122.0384927) erstellt. Sie wurde heute (25.4.16) zuletzt geändert (1461576324.0153048). Warum liegt aber der letzte Zugriff zwischen diesen Daten am 18.4.16 (1460984078.0165174), als ich die Datei für einen Test in das Verzeichnis, in dem sie jetzt liegt, verschob?
„NTFS delays updates to the last access time for a file by up to one hour after the last access. NTFS also permits last access time updates to be disabled. Last access time is not updated on NTFS volumes by default. “ - https://msdn.microsoft.com/en-us/library/ms724320(VS.85).aspx
Danke dafür, besonders für den Link. Jede Suche meinerseits landete im Meer von „Ich kann X nicht installieren“ oder „Nach einer Neuinstallation von Windows kann ich nicht auf Datei Y aus der alten Installation zugreifen“.
Die Angabe des letzten Zugriffs, der mit dem Zeitpunkt des letzten Verschiebens der Datei verknüpft sein dürfte, spricht dafür, dass die Aktualisierung des Wertes in meinem Fall, wie es oben als Möglichkeit angegeben ist („NTFS also permits last access time updates to be disabled. Last access time is not updated on NTFS volumes by default.“), abgeschaltet ist.
Tschö, Auge
Tach,
Die Angabe des letzten Zugriffs, der mit dem Zeitpunkt des letzten Verschiebens der Datei verknüpft sein dürfte, spricht dafür, dass die Aktualisierung des Wertes in meinem Fall, wie es oben als Möglichkeit angegeben ist („NTFS also permits last access time updates to be disabled. Last access time is not updated on NTFS volumes by default.“), abgeschaltet ist.
es liegt zumindest nahe (ab Vista), ob es tatsächlich so ist, lässt sich allerdings auch überprüfen:
fsutil behavior query disablelastaccess
Ich glaube bei Windows ist das eine OS-Einstellung und nicht partitionsabhängig.
mfg
Woodfighter