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 komme ich an die verschiedenen Datumswerte einer Datei? (https://www.delphipraxis.net/200828-wie-komme-ich-die-verschiedenen-datumswerte-einer-datei.html)

Woodman 29. Mai 2019 16:07

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:
// 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;
Diese Routine gibt mir das Creation Date, Last access date und das Modified date zurück. Soweit, so gut...
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??

Delphi.Narium 29. Mai 2019 16:19

AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
 
Eventuell EXIF-Daten aus dem JPeg?

https://www.google.com/search?q=delp...utf-8&oe=utf-8

https://sno.phy.queensu.ca/~phil/exi...ames/EXIF.html

https://www.get-metadata.com/

Woodman 29. Mai 2019 16:48

AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1433396)
Eventuell EXIF-Daten aus dem JPeg?

...

Nee, leider nicht. Die Dateien sind - wie ich oben schon angedeutet habe - die Ergebnisse eines Dia-Scanners. Und der schreibt leider keine Exifdaten rein. Das ist aber genau das, was ich machen möchte.

philipp.hofmann 29. Mai 2019 16:52

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;

Woodman 29. Mai 2019 17:28

AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1433399)
Das Datum mit dem letzten Update findest Du folgendermaßen heraus ....

Vielen Dank, das funktioniert... Ist aber leider nicht das was ich gesucht habe. S.o.
Tatsächlich gibt Deine Routine das gleiche zurück wie SysUtils.FileAge(Filename), also das Änderungsdatum.

Luckie 29. Mai 2019 17:36

AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
 
Ich sehe auf dem Screenshort nur drei Datumswerte.

Woodman 29. Mai 2019 17:43

AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Luckie (Beitrag 1433403)
Ich sehe auf dem Screenshort nur drei Datumswerte.

Ähm, also von links nach rechts:
Datum, Erstelldatum, Änderungsdatum und Letzter Zugriff
Anhang 51163

peterbelow 29. Mai 2019 18:53

AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
 
Zitat:

Zitat von Woodman (Beitrag 1433395)
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:
// 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;
Diese Routine gibt mir das Creation Date, Last access date und das Modified date zurück. Soweit, so gut...
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??

Das angezeigte Erstelldatum kann nur in der Datei selbst stehen, es ist nicht Teil der Metadaten des Filesystems. Explorer weis offenbar, wie er das aus der jpg-Datei ecxtrahieren muss (eventuell ein Plugin der Scannersoftware??).

Luckie 29. Mai 2019 19:13

AW: Wie komme ich an die verschiedenen Datumswerte einer Datei?
 
Zitat:

Zitat von Woodman (Beitrag 1433404)
Zitat:

Zitat von Luckie (Beitrag 1433403)
Ich sehe auf dem Screenshort nur drei Datumswerte.

Ähm, also von links nach rechts:
Datum, Erstelldatum, Änderungsdatum und Letzter Zugriff
Anhang 51163

Mist. Ich habe nur die drei Datumsspalten rechts gesehen. :roll:

Benmik 29. Mai 2019 19:59

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?


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