Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Änderungsdatum von Datei Millisekunden (https://www.delphipraxis.net/158626-aenderungsdatum-von-datei-millisekunden.html)

gmc616 24. Feb 2011 11:52

Änderungsdatum von Datei Millisekunden
 
Hallo DP,

ist es möglich das Änderungsdatum/zeit einer Datei auf Millisekunden genau zu ermitteln?

Wenn ja, wie?

Dankbar für jeden Hinweis
gmc

SirThornberry 24. Feb 2011 11:56

AW: Änderungsdatum von Datei Millisekunden
 
Nur wenn sowohl Betriebssystem als auch Dateisystem das unterstützen. Und da du dich beim Dateisystem nicht darauf verlassen kannst solltest du davon Abstand nehmen.
Aber auf Millisekunden genau klingt eher danach das eine Datei für dich hier das falsche ist. Immerhin vergehen bereits Millisekunden zwischen Anfordern des Datums und dem erhalten und in der Zwischenzeit kann sich das Datum im Millisekundenbereich längst geändert haben.

ele 24. Feb 2011 11:58

AW: Änderungsdatum von Datei Millisekunden
 
Man kann, aber das Ergebnis ist wahrscheinlich nicht so exakt wie du das gerne hättest. Aus dem MSDN-Artikel für GetFileTime():

Zitat:

Zitat von http://msdn.microsoft.com/en-us/library/ms724320(v=vs.85).aspx
Not all file systems can record creation and last access times and not all file systems record them in the same manner. For example, on FAT, create time has a resolution of 10 milliseconds, write time has a resolution of 2 seconds, and access time has a resolution of 1 day (really, the access date). Therefore, the GetFileTime function may not return the same file time information set using the SetFileTime function.

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.


gmc616 8. Mär 2011 16:45

AW: Änderungsdatum von Datei Millisekunden
 
So. Endlich wieder mal Zeit gefunden.

Die Funktion GetFileTime benutze ich bereits. Das Dateisystem ist NTFS und das BS ist ein W2k8-Server.

Ziel des ganzen ist, ein Verzeichnis zu überwachen, um herauszufinden in welcher Reihenfolge die darin befindlichen Dateien geändern werden. Da diese Änderungen meist innerhalb einer Sekunde geschehen, brauche die die Änderungszeit auf Millisekunden genau. Die genaue Zeit ist mir eigentlich egal, ich brauche die Zeit lediglich um die Dateien nach der Änderungszeit sortieren zu können. Ich denke dafür sollte die Genauigkeit ausreichend sein.

Wie ich aber mittler festgestellt habe, ist das Verezeichnis welches ich überwachen möchte gar kein NTFS sondern SMB, also eine Freigabe von einem anderen Server, was ich beim ersten Post total vergessen habe :wall:. Ich schätze Millisekunden werden per SMB nicht übertragen, da alle Dateien 0 Millisekunden im Millisekunden-Bereich haben.

Auf ner richtigen NTFS-Partition bekomme ich die Millisekunden. Mal checken, ob das auch der Reihenfolge der Änderungen entspricht.

Danke für den Klapps!

Assarbad 8. Mär 2011 17:02

AW: Änderungsdatum von Datei Millisekunden
 
Tja, wie wäre es dann mit der Nutzung des USN-Journals (MSDN-Library durchsuchenUSN journal)?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz