Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Filedatum einer jpg-Datei in Win7 ändern (https://www.delphipraxis.net/182419-filedatum-einer-jpg-datei-win7-aendern.html)

norwegen60 22. Okt 2014 22:34

Filedatum einer jpg-Datei in Win7 ändern
 
Hallo,

ich habe ein Programm geschrieben, mit dem ich die diversen Datums eines Bildes korrigieren kann. Das funktioniert einwandfrei mit den EXIF-Datums. Seit Win7-64bit habe ich aber Probleme mit dem Datei-Datum. Ich habe es mit
Delphi-Quellcode:
            sFileDatum := '11.11.2011 11:11:11';
            FileSetDate(sFile, DateTimeToFileDate(StrToDateTime(sFileDatum)));
und zusätzlich mit
Delphi-Quellcode:
            hFile := FileOpen(sFile, fmOpenWrite or fmShareDenyNone);
            try
              DateTimeToSystemTime(StrToDateTime(sFileDatum), stWrite);
              SystemTimeToFileTime(stWrite, ftWrite);
              if not SetFileTime(hFile, @ftWrite, @ftWrite, @ftWrite) then
                ShowMessage((format('%s: Can´t set dates ## %s', [ExtractFileName(sFile), sFile]));
            finally
              FileClose(hFile);
            end;
probiert.
Problem:
Im Explorer wird weiterhin das alte Datum angezeigt. Verschiebe ich die Datei in ein anderes Verzeichnis, wird der 11.11. angezeigt. Schiebe ich sie wieder in das Verzeichnis zurück, in dem ich das Datum mit Delphi geändert habe, wird wieder das ursprüngliche Datum angezeigt. So als befände es sich in einem Puffer. Das Datum bleibt aber auch das alte, wenn ich das Bild im Verzeichnis dupliziere.
Rechtsklick-Dateieigenschaften zeigt '11.11.2011 12:11:11'
IrfanView Datum/Uhrzeit zeigt auch '11.11.2011 12:11:11'e

Hauptproblem ist, dass sich das Datum im Explorer gar nicht ändert.
Nebenproblem ist die Stunde Zeitverschiebung.

Wer kann helfen?

Vielen Dank
Gerd

EWeiss 22. Okt 2014 22:44

AW: Filedatum einer jpg-Datei in Win7 ändern
 
Meines Erachtens reicht es nicht einfach nur das Datum der Datei zu schreiben.
Dafür sollte man den JPG Header verwenden in dem das Dateiformat, Uhrzeit usw.. steht.
Siehe Anhang was ich meine.

gruss

himitsu 22. Okt 2014 23:06

AW: Filedatum einer jpg-Datei in Win7 ändern
 
Wird im Explorer, in dem Verzeichnis auch wirklich das Dateidatum (LastWrite des Dateisystems) angezeigt, oder wurde die Ansicht (Ordnertyp) umgeschaltet, bzw. wird da z.B. das EXIF-Datum angezeigt?

Natürlich wird die Anzeige des Verzeichnisses standardmäßig pro Verzeichnis gespeichert und automatisch "intelligent" umgeshaltet, so daß man in jedem Verzeichnis was anderes sehen kann.

Oder hast du vielleicht ein paar Explorer-Extensions installiert, welche da rumpfuschen?



PS: Für Dateizeugs, schau mal in die Delphi-Referenz durchsuchenIOUtils.

EWeiss 22. Okt 2014 23:08

AW: Filedatum einer jpg-Datei in Win7 ändern
 
Das Datum wird sich immer ändern.
Kopiere mal ne alte Datei vom Wechselträger auf die Platte.
Dann wird automatisch das aktuelle Datum genommen.
Oder?

gruss

mkinzler 22. Okt 2014 23:19

AW: Filedatum einer jpg-Datei in Win7 ändern
 
Nicht aber das Datum im EXIF und/oder IPTC Tag der Jpegdatei.

EWeiss 22. Okt 2014 23:25

AW: Filedatum einer jpg-Datei in Win7 ändern
 
Zitat:

Zitat von mkinzler (Beitrag 1277069)
Nicht aber das Datum im EXIF und/oder IPTC Tag der Jpegdatei.

JO! ;)
Deshalb habe ich ja darauf hingewiesen.

gruss

norwegen60 23. Okt 2014 08:17

AW: Filedatum einer jpg-Datei in Win7 ändern
 
Hallo zusammen,

Danke für die Hinweise. Ich hatte zwar in die Richtung schon rumprobiert, jetzt aber noch mal etwas genauer. Und siehe da, die Lösung ist gefunden. Das einzige Datum, das ich bewusst nicht geändert habe, war das EXIF-Original Datum. Genau dieses wird aber von "Datum" im Explorer angezeigt.

Danke und Grüße
Gerd

himitsu 23. Okt 2014 10:25

AW: Filedatum einer jpg-Datei in Win7 ändern
 
Zitat:

Zitat von norwegen60 (Beitrag 1277085)
Genau dieses wird aber von "Datum" im Explorer angezeigt.

Nein, dort sind alle Datumse vorhanden, aber es sind zum Glück nicht alle 2000 Spalten immer sichtbar
und welche der Datumsspalten nun aktuell angezeigt werden, hängt von verschiedenen Faktoren ab,
wobei es dir aber keiner verbietet ein anderes Layout (Ordnertyp) und/oder andere Spalten anzuzeigen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 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