![]() |
Wie komme ich an die verschiedenen Datumswerte einer Datei?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Wissende,
tja, die Frage ist sicher schon hundertmal beantwortet worden, aber für mein Problem habe ich noch keine Lösung gefunden. Folgendes: Bekannt ist mir diese Routine:
Delphi-Quellcode:
Diese Routine gibt mir das Creation Date, Last access date und das Modified date zurück. Soweit, so gut...
// Hier gefunden: https://www.delphipraxis.net/6594-letzten-zugriff-auf-datei-auslesen.html
function GetFileTimes(const FileName: string; var Created: TDateTime; var Accessed: TDateTime; var Modified: TDateTime): Boolean; var h: THandle; Info1, Info2, Info3: TFileTime; SysTimeStruct: SYSTEMTIME; TimeZoneInfo: TTimeZoneInformation; Bias: Double; begin Result := False; Bias := 0; h := FileOpen(FileName, fmOpenRead or fmShareDenyNone); if h > 0 then begin try if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then Bias := TimeZoneInfo.Bias / 1440 * 2; // 60x24 GetFileTime(h, @Info1, @Info2, @Info3); if FileTimeToSystemTime(Info1, SysTimeStruct) then Created := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info2, SysTimeStruct) then Accessed := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info3, SysTimeStruct) then Modified := SystemTimeToDateTime(SysTimeStruct) - Bias; Result := True; finally FileClose(h); end; end; end; Mein Explorer zeigt aber 4 Datumswerte an: Anhang 51162 In meinem Falle such ich das tatsächliche Erstell- bzw. Scan-Datum. Da die Dateien schon mal umkopiert wurden, zeigt das Erstell-Datum nur das Kopierdatum an. Das eigentliche Erstelldatum wird hier unter "Datum" angezeigt. Wie komme ich an dieses Datum heran?? |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Eventuell EXIF-Daten aus dem JPeg?
![]() ![]() ![]() |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Zitat:
|
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Das Datum mit dem letzten Update findest Du folgendermaßen heraus und dies ist auf allen OS kompilierbar (ich kann jetzt aber nicht die Hand in's Feuer legen, dass es auch auf allen OS einen brauchbaren Wert zurückliefert, das müsste ich erst testen):
Delphi-Quellcode:
class function TFileUtils.getFileChangeDate(filename:String):TDateTime;
var sr: TSearchRec; begin Result := 0; try if FindFirst(filename, faNormal, sr) = 0 then Result := sr.TimeStamp; finally FindClose(sr); end; end; |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Zitat:
Tatsächlich gibt Deine Routine das gleiche zurück wie SysUtils.FileAge(Filename), also das Änderungsdatum. |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Ich sehe auf dem Screenshort nur drei Datumswerte.
|
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Datum, Erstelldatum, Änderungsdatum und Letzter Zugriff Anhang 51163 |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Zitat:
|
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Zitat:
|
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Bei diesen Daten geht es sowieso nicht mit rechten Dingen zu. Wie kann das letzte Änderungsdatum vor dem Erstelldatum liegen? "Datum" wird vom Explorer offenbar auch nur bei Bildern angeboten. Das ist sicher, dass der Scanner keine EXIF-Sektion angelegt hat?
|
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Zitat:
Grüße Dalai |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Okay, meine Antwort war etwas zu kurz ausgefallen: Am TSearchRec gibt es weitere Methoden, u.a.
FindData (Windows only) contains additional information such as the file creation time, last access time, and both the long and short file names. Aber vermutlich sind dies auch die beiden Datumswerte, die du schon hast. |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Zitat:
Eine andere Möglichkeit für ein Datum im Dateiystem gibt es dort nicht, es wird nur aus der Datei ausgelesen und bei Misserfolg das Änderungsdatum aus dem Dateisystem angezeigt. |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Leute,
vielen Dank für Eure Beiträge. Ich glaube, ich muss das mal in einem Microsoft-Forum anfragen. Tatsächlich sind in den JPEGs keine Exif-Infos drin. Es gibt zwar diverse andere Infos drin. XnView zeigt mir z.B. diese Datei-Eigenschaften an: Anhang 51168 Da stehen tatsächlich auch drin, welche Software den Scan durchgeführt hat - aber eben nicht als Exif und auch nicht als IPTC. Auch bei "normalen" Dateien sind dies 4 Datumswerte vorhanden: Anhang 51169 Wie man sieht, hat das "Datum" nicht immer das entsprechende Pendant eines anderen Datumwertes. Bei der Datei "termine2019.xls" im oberen Bild z.B. weicht der Wert von "Datum" von den anderen Datumswerten ab. Ich werde weiter forschen... |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Schonmal in die Spezifikation für JPegs geschaut?
![]() ![]() Da steht so etliches von dem drin, was XNView (und andere Progranmme) anzeigen können. EXIF ist "nur" ein AddOn, damit man in Bildern auch solche Daten speichern kann, die für die Darstellung der Bilder eigentlich nicht erforderlich sind. Also quasi eine "Kommentarfunktion nach definierten Regeln" ;-) |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Zitat:
Der TE sollte mal ein Bildschirmfoto mit dem Hexdump des Dateianfangs einstellen, dann könnte man mal nachsehen, was da in der Datei drin ist. |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Nur kurz zur Erklärung, warum das Änderungsdatum vor dem Erstelldatum liegt (Das kann auch jeder selber testen): Die Dateien aus dem Screendump habe vom Original "Enstehungsort" in ein anderes Verzeichnis kopiert. Das kann man auch daran erkennen, das "Erstelldatum" und "letzter Zugriff" bei allen Dateien identisch ist aber unter "Datum" ist noch das Original-Erstelldatum zu erkennen.
|
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Hmm..
Ich denke mal, ohne ein 'Muster' Bild werden wir Dir nicht weiterhelfen können.. Die 'normalen' Möglichkeiten, zusätzliche Informationen in einem JPEG unterzubringen sind Dir aufgezählt worden. Um eine Lösung bringen zu können, geht es nur noch mit einer Musterdatei, bzw. eines HEX-Dumps, wobei dieser schon mindestens die ersten 1K Bytes umfassen sollte.. Ach ja, einfach ein Bild hier im Post einzuhängen wird nichts bringen, da diese Bilder (glaube ich) umcodiert/verkleinert werden. Somit das Muster (z.B. packen, damit es erhalten bleibt) und als Anhang hinzufügen. |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Also, ich habe ein wenig "gespielt" und glaube jetzt die Lösung gefunden zu haben für den Wert von "Datum":
|
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Liste der Anhänge anzeigen (Anzahl: 1)
Schau mal mit IrfanView, welche Art von Metadaten in den Bildern hinterlegt sind. Es gibt nicht nur EXIF sondern auch IPTC und andere. Beispiel siehe Anhang, linke untere Ecke.
Grüße Dalai |
AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
Liste der Anhänge anzeigen (Anzahl: 5)
Hallo Dalai,
vielen Dank für den Tipp. Dafür habe ich mir IrfanView mal installiert. So sieht eine Datei (unbearbeitet) vom Scanner aus: Anhang 51175 Man sieht: Keine Exif-Daten, IPTC-Daten sind leer und nur der Comment ist belegt: Anhang 51176 Hier hat das Scann-Programm seine Spuren hinterlassen. Ich bearbeite das Bild dann mit einem Programm von mir, mit dem ich zusätzliche Infos sowohl in die Exif- als auch in die IPTC-Daten schreibe. Das sieht dann so aus: Anhang 51178 In die Exif-Daten schreibe ich das Scanner-Model und das Scann-Datum: Anhang 51179 Und in die IPTC-Daten kommt eine "Überschrift" und die kurze Beschreibung vom Dia hinein: Anhang 51180 Aber mein eigentliches "Problem" ist ja gelöst: Das "Datum" vom Explorer ist lediglich ein virtueller Wert, den sich der Explorer von den Daten abgreift die er so erwischt, wohl in der Reihenfolge "Aufnahmedatum" aus den Exifdaten. Wenn nicht vorhanden das "Scann-Datum" aus den ExifDaten und wenn er keine Exifdaten findet dann das "Erstelldatum". |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz