Auge: Was gilt unter Windows als Dateizugriff?

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?

  • Sollte eine heutige Bearbeitung der Datei nicht als Zugriff gelten, der einen neuen Zeitstempel erzeugt?
  • Sollte nicht das Öffnen der Datei mit einem Editor als Zugriff gelten, der einen neuen Zeitstempel erzeugt?

Was also gilt für Windows als Zugriff auf eine Datei?

Tschö, Auge

--
Wir hören immer wieder, dass Regierungscomputer gehackt wurden. Ich denke, man sollte die Sicherheit seiner Daten nicht Regierungen anvertrauen.
Jan Koum, Mitgründer von WhatsApp, im Heise.de-Interview

akzeptierte Antworten

  1. 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

    1. 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

      --
      Wir hören immer wieder, dass Regierungscomputer gehackt wurden. Ich denke, man sollte die Sicherheit seiner Daten nicht Regierungen anvertrauen.
      Jan Koum, Mitgründer von WhatsApp, im Heise.de-Interview
      1. 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