Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Dateidatum per VBA ändern

Begonnen von Gockel67, Mai 30, 2026, 12:08:42

⏪ vorheriges - nächstes ⏩

Gockel67

Hi Holger,

vielen Dank an dich. Ich komme aber erst am Freitag dazu mir das anzuschauen. Wichtig wäre eigentlich nur das Erstelldatum. Optimal wäre es dann natürlich wenn Ändereunsdatum=Erstelldatum wäre.

Liebe Grüße
Jörg

Knobbi38

Habe ich ...  ;D

Das gilt nicht nur für WebDAV, sondern auch für einige FTP-Implementierungen (musste mit der Fritzbox so meine Erfahrungen machen):
man kann die Metadaten einfach an den Dateinamen vor der Extension einfügen. Die max. Länge für Dateinamen sollte das noch zulassen.

Knobbi38

Knobbi38

Hallo Jörg,

du bist da auf etwas gestoßen, dass normalerweise keinem auffällt. Du kannst das Erstellungs- und Modifikationsdatum richtig setzen, aber beim letzten Zugriffsdatum tritt der von dir beschriebene Fehler nachvollziehbar auf.

Ich habe dazu mal die KI befragt und nach hartnäckigem "Nachbohren" habe ich dann auch eine technisch akzeptable Antwort bekommen. Ohne ins Detail gehen zu wollen, liegt es an Windows und die Art, wie es das letzte Zugriffsdatum in Verbindung mit dem NTFS Dateisystem verwaltet. Hier greifen wohl Treiber, Caching, Umrechnungen von UTC / MEZ, Winter-/Sommerzeit usw. in das Geschehen ein. Fakt: du kannst dem letzten Zugriffsdatum nicht so ohne weiteres trauen bzw. es gezielt auf einen gewünschten Wert setzen, zumindest nicht bei den zwei Daten: 01.03.xxxx 00:01:00 und 01.01.xxxx 00:01:00

Wie gesagt, alles andere funktioniert richtig.

Wenn jemand Interesse an dem Testprogramm hat, mit dem ich die Metadaten geschrieben habe, kann ich es noch hochladen.

Gruß Knobbi38

Debus

Hallo Ulli,

es wäre nett, wenn Du das Testprogramm hochladen würdest. ggf auch einfach als PM.

Danke
Holger

Knobbi38

Hallo Holger,

kein Problem.

Gruß
Ulrich

Debus

Hallo Ulli

Danke, das ist ja der gleiche weg den ich auch so vorgeschlagen habe. Aber was hälst Du von zurückschreiben (ist natürlich aufwendiger). Ich finde Deine Idee hier für Jörg mit die MetaDaten in den Dateinamen einzubauen viel eleganter und einfachen.

Gruß
Holger

Knobbi38

Das mit dem letzten Zugriffsdatum ist ja für Jörg irrelevant, insofern sollte er es einfach ausprobieren. Wenn das per API oder FSO nicht funktioniert, würde ich die Metadaten in den Dateinamen einbauen und eine kleine Kopierroutine erstellen, welche die notwendigen Änderungen vornimmt. Das geht mit dem FSO sicherlich viel einfacher, als mit der API. Für eine Batchverarbeitung könnte an auch an ein PowerShell-Script in Betracht ziehen, z.B. wenn es um ganze Verzeichnisstrukturen geht.

Gruß
Ulrich

PhilS

Zitat von: Knobbi38 am Juni 02, 2026, 13:36:37Ich habe dazu mal die KI befragt und nach hartnäckigem "Nachbohren" habe ich dann auch eine technisch akzeptable Antwort bekommen
War die Antwort denn korrekt? Also, gibt es offizielle Quellen von Microsoft die diesen Sachverhalt so bestätigen?

Ich finde in der Dokumentation von Microsoft Warnungen, dass LastAccessTime ungenau ist und wegen des hohen Ressourcenbedarfs standardmäßig deaktiviert ist. Aber Hinweise auf konkrete Probleme mit dem 01.03.xxxx 00:01:00 und 01.01.xxxx 00:01:00 habe ich nicht gefunden.

Ich habe dein Beispiel ausprobiert und keine Probleme feststellen können.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Knobbi38

#23
Hallo Phil,

ich habe mehrere Anläufe unternommen und verschiedene Dinge ausprobiert. Klar ist, dass NTFS immer UTC Zeit für diese Zeitangaben verwendet. Das Problem ist nun, dass beim Letzten Zugriffsdatum irgend etwas verloren geht, möglicherweise aus Performancegründen. Wie auch immer, spielt anschließend die Umrechnung von lokaler Zeitangabe in UTC Zeit dann nicht mehr mit. Wenn man von #01.03.2026 12:01:00 AM# (CEST) zwei Stunden abzieht, kommt man genau zu dem Phänomen, dass im Explorer bei den Eigenschaften die Zeit falsch ist, "28. Feb. ....". Sie wird nicht für die Anzeige einfach falsch zurückgerechnet, sondern wenn man das per API ausliest, kann man mit dem Debugger die einzelnen Schritte ja mitverfolgen. Genauso dann das Problem mit dem Datum 01.01.2026, so wie es Jörg auch beschrieben hat.

Ich kann die Angaben natürlich nicht mit offiziellen Dokumenten von Microsoft verifizieren. Alle Hinweise, die mir die KI bezüglich des Problems gegeben hat, konnte ich jedoch nachvollziehen. Deshalb nehme ich jetzt an, dass diese erst einmal stimmen, es sei denn, jemand zeigt mir, dass es nicht so ist.

Wenn man sich außerdem die anderen Suchergebnisse im Internet ansieht, beschreiben die ähnliche Phänomene. Du kannst ja mal mit dem Stichwort: "Time Zone Discrepancies and the 'One Hour' Bug" suchen, was aber nur einen Teil des Problems beschreibt, LastAccessTimestamp ist noch ein anderes.


Gruß
Ulrich

Nachtrag:
Das sollte man auch noch kontrollieren:
https://www.tenforums.com/tutorials/139015-enable-disable-ntfs-last-access-time-stamp-updates-windows-10-a.html

PhilS

Zitat von: Knobbi38 am Heute um 13:07:37Wenn man von #01.03.2026 12:01:00 AM# (CEST) zwei Stunden abzieht, kommt man genau zu dem Phänomen, dass im Explorer bei den Eigenschaften die Zeit falsch ist, "28. Feb. ....".
? Aber der 28.02.2026 22:01 wäre doch richtig wenn man 2 Stunden abzieht.
Da der Explorer aber die lokale Zeit zeigen soll, ist es doch korrekt, dass er die 2 Stunden *nicht* abzieht.
Sorry, ich sehe hier scheinbar das Problem nicht.

Sie dürfen in diesem Board keine Dateianhänge sehen.


Ich habe TesteMetadatenVerschiebung zweimal ausgeführt. Erst für den 01.03. dann für den 01.01.:

==================================================
1. METADATEN VOR DEM UPDATE (LOKALZEIT):
   Erstellungsdatum: 03.06.2026 15:25:26
   Änderungsdatum:   27.11.2018 23:44:58
   Letzter Zugriff:  03.06.2026 15:25:26
--------------------------------------------------
2. METADATEN NACH DEM UPDATE (LOKALZEIT):
   Erstellungsdatum: 01.03.2026 00:01:00
   Änderungsdatum:   01.03.2026 00:01:00
   Letzter Zugriff:  01.03.2026 00:01:00
==================================================

==================================================
1. METADATEN VOR DEM UPDATE (LOKALZEIT):
   Erstellungsdatum: 01.03.2026 00:01:00
   Änderungsdatum:   01.03.2026 00:01:00
   Letzter Zugriff:  01.03.2026 00:01:00
--------------------------------------------------
2. METADATEN NACH DEM UPDATE (LOKALZEIT):
   Erstellungsdatum: 01.01.2026 00:01:00
   Änderungsdatum:   01.01.2026 00:01:00
   Letzter Zugriff:  01.01.2026 00:01:00
==================================================
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor