Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie kann ich Erzeugungsdatum einer Datei ermitteln ? (https://www.delphipraxis.net/112840-wie-kann-ich-erzeugungsdatum-einer-datei-ermitteln.html)

EccoBravo 28. Apr 2008 09:45


Wie kann ich Erzeugungsdatum einer Datei ermitteln ?
 
Hallo Kollegen,

wie kann ich das Erzeugungs- oder Änderungsdatum einer Datei (speziell einer *.jpg und *.bmp) ermitteln und neu festlegen?

Vielen Dank

E. B.

Meflin 28. Apr 2008 09:47

Re: Wie kann ich Erzeugungsdatum einer Datei ermitteln ?
 
Moin,

MSDN-Library durchsuchenGetFileTime und MSDN-Library durchsuchenSetFileTime dürften dir weiterhelfen ;)

EccoBravo 28. Apr 2008 10:05

Re: Wie kann ich Erzeugungsdatum einer Datei ermitteln ?
 
Danke,

Die Anwendung der Funktion

Delphi-Quellcode:
DateTimeString := GetFileTime(Filename);
führt leider zur Fehlermeldung:

...E2010 Incompatible Typen Cardinal und String

Wie verwende ich die Funktionen GetFileTime und SetFileTime richtig ?

Vielen Dank

E. B.

mkinzler 28. Apr 2008 10:06

Re: Wie kann ich Erzeugungsdatum einer Datei ermitteln ?
 
Frag mal F1

Meflin 28. Apr 2008 10:09

Re: Wie kann ich Erzeugungsdatum einer Datei ermitteln ?
 
Zitat:

Zitat von EccoBravo
Wie verwende ich die Funktionen GetFileTime und SetFileTime richtig ?

Glaube du musst
Delphi-Quellcode:
SystemTimeToDateTime(FileTimeToSystemTime(_FILETIME))
machen. Oder so ähnlich :stupid:


kiar 28. Apr 2008 11:12

Re: Wie kann ich Erzeugungsdatum einer Datei ermitteln ?
 
moin,

schon mal gesucht?


http://www.delphipraxis.net/internal...ht=getfiletime



raik

EccoBravo 28. Apr 2008 12:58

Re: Wie kann ich Erzeugungsdatum einer Datei ermitteln ?
 
Hallo Kollegen,

ich bin bei der Problemlösung rein zufällig auf eine interessante Beobachtung gekommen, die ich als Bug-Vermutung äußern möchte

Hierzu zitiere ich mich erst mal selbst:
Zitat:

ich suche gerade zum gleichen Thema und habe marabus Code ausprobiert:
Dabei entdeckte ich einen, schon früher mit anderen Programmen bemerkten Fehler:

Datum und Zeit werden mit Attribut, welches von ftCreationTime ausgelesen wird, nicht richtig wiedergegeben.

Die Aufnahmezeiten, die ich mit ftCreationTime auslese entsprechen nicht dem Zeitpunkt, zu dem die Foto gemacht wurden, sondern dem Zeitpunkt, zu dem die Fotos auf den Rechner überspielt wurden.

Das richtige korrekte Fotoaufnahmedatum lese ich mit ftLastWriteTime aus, also fälschlicherweise mit dem befehl, der das letzte Schreiben des Bildfiles tituliert (also dem Zeitstamp beim Kopieren).

Diese Beobachtung habe ich schon mit dem Fotoprogramm ACDSee gemacht, als ich die zu importierenden Fotos mit dem Aufnahmedatum umbenennen wollte. ACDSee benannte dann die Fotos nicht mit dem AufnahmeDatum um sondern mit dem Änderungs (also dem Zeitstämp des Importierens) um.
Ebenfalls die Verzeichnisnamen in der ACDSee Datenbank haben nicht das AufnahmeDatum sondern den ImportDatum zum Namen.
In ACDSee werden die richtigen Bildnamen erst durch die Umbenennungsfunktion nach Änderungsdatum beim Importieren richtig benannt.

Fazit der ganzen Beobachtung: AufnahmeDatum und Änderungsdatum sind in den jpg-BildHeadern vertauscht.
Diese gilt sowohl für XP home und Vista.

Dieses also eine Bug-Vermutung.
oder nachzulesen im Thread:
http://www.delphipraxis.net/internal...t.php?t=127336

jedenfalls nach austauschen des Befehls ftCreationTime und ftLastWriteTime funktioniert es bei mir.
Die vom Fotoapparat mit meinem Programm importierten Bilder erhalten nun ihren richtigen Bildnamen, der aus dem AufnahmeZeitpunkt gebildet werden soll.

Also nochmals Danke.

E. B.

Luckie 28. Apr 2008 13:44

Re: Wie kann ich Erzeugungsdatum einer Datei ermitteln ?
 
Zitat:

Zitat von EccoBravo
Datum und Zeit werden mit Attribut, welches von ftCreationTime ausgelesen wird, nicht richtig wiedergegeben.

Die Aufnahmezeiten, die ich mit ftCreationTime auslese entsprechen nicht dem Zeitpunkt, zu dem die Foto gemacht wurden, sondern dem Zeitpunkt, zu dem die Fotos auf den Rechner überspielt wurden.

Das ist schon richtig. Wann wurde die Datei auf der Festplatte erzeugt und der Eintrag im dateisystem gemacht? Richtig, als die Datei kopiert wurde. Zu diesem Zeitpunkt wurde sie auf deiner Festplatte erzeugt.

Zitat:

Das richtige korrekte Fotoaufnahmedatum lese ich mit ftLastWriteTime aus, also fälschlicherweise mit dem befehl, der das letzte Schreiben des Bildfiles tituliert (also dem Zeitstamp beim Kopieren).
Entweder verstehe ich dich nicht oder du irrst dich. Hast du die Datei kopiert und dannach nicht mher angefasst, entspricht das Kopierdatum dem ftLastWriteTime Zeitpunkt.

Zitat:

Fazit der ganzen Beobachtung: AufnahmeDatum und Änderungsdatum sind in den jpg-BildHeadern vertauscht.
Diese gilt sowohl für XP home und Vista.
Von was reden wir jetzt von den EXIF-Informationen oder von den dateisysteminformationen? Unabhängig davon hat das nichts mit XP oder Vista zu tun, sondern mit der Software, die die EXIF-Daten schreibt.

SaFu 28. Apr 2008 13:49

Re: Wie kann ich Erzeugungsdatum einer Datei ermitteln ?
 
Habe das hier mal benutzt

Erstellungsdatum von Dateien ermitteln

Gruß Sascha

prsearcher 28. Apr 2008 13:53

Re: Wie kann ich Erzeugungsdatum einer Datei ermitteln ?
 
Hallo zusammen,

kann es sein, dass EccoBravo den Begriff "Erstellungsdatum" falsch interpretiert ?
"Erstellungsdatum" meint doch die Dateierzeugung im Windows-Dateisystem und
nicht den tatsächlichen Foto-Aufnahmezeitpunkt (Auslöserbetätigung !?!?!?).

Der Zeitstempel des Foto-Aufnahmezeitpunkts steht meiner Meinung nach in den
sog. EXIF-Daten des Bildes.

Hoffe, dass ich EccoBravo mit meinem Kommentar nicht zu nahe getreten bin.
Will nur helfen.

Schöne Grüße, Do.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 Uhr.
Seite 1 von 3  1 23      

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