AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Änderungsdatum ist seeehr merkwürdig
Thema durchsuchen
Ansicht
Themen-Optionen

Änderungsdatum ist seeehr merkwürdig

Ein Thema von zebrafalke · begonnen am 20. Jul 2006 · letzter Beitrag vom 20. Jul 2006
 
Benutzerbild von zebrafalke
zebrafalke

Registriert seit: 25. Feb 2006
155 Beiträge
 
Turbo Delphi für Win32
 
#1

Änderungsdatum ist seeehr merkwürdig

  Alt 20. Jul 2006, 19:16
Hallo,
folgender Code soll den Inhalt eines Ordners auslesen, die gefundenen Dateien in einer Listbox darstellen und nach jeder gefundenen Datei eine Message mit Erstellungsdatum, letztes Zugriffsdatum, letzter Schreibzugriff und Dateinamen anzeigen.

Delphi-Quellcode:
function GetFileDate(const FileName: string; out Creation, LastAccess,
  LastWrite: TDateTime): Boolean;
var
  hFile: THandle;
  ftCreationUTC, ftLastAccessUTC, ftLastWriteUTC: TFileTime;
  ftCreationLocal, ftLastAccessLocal, ftLastWriteLocal: TFileTime;
  stCreationLocal, stLastAccessLocal, stLastWriteLocal: TSystemTime;
begin
  result:=false;
  hFile := CreateFile(PChar(FileName), GENERIC_READ, 0, nil,
  OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
  if (hFile <> INVALID_HANDLE_VALUE) then begin
    try
      //Ermittlung des Dateidatums in UTC (Weltzeit)
      if GetFileTime(hFile, @ftCreationUTC, @ftLastAccessUTC, @ftLastWriteUTC) then begin
        //Umrechnung in Ortszeit
        if FileTimeToLocalFileTime(ftCreationUTC, ftCreationLocal)
        and FileTimeToLocalFileTime(ftLastAccessUTC, ftLastAccessLocal)
        and FileTimeToLocalFileTime(ftLastWriteUTC, ftLastWriteLocal) then begin
          //Umwandlung in Systemdatumformat
          if FileTimeToSystemTime(ftCreationLocal, stCreationLocal)
          and FileTimeToSystemTime(ftLastAccessLocal, stLastAccessLocal)
          and FileTimeToSystemTime(ftLastWriteLocal, stLastWriteLocal) then begin
            //Zuweisung der Rückgabewerte
            Creation := SystemTimeToDateTime(stCreationLocal);
            LastAccess := SystemTimeToDateTime(stLastAccessLocal);
            LastWrite := SystemTimeToDateTime(stLastWriteLocal);
            result:=true;
          end;
        end;
      end;
    finally
      CloseHandle(hFile);
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 FindFirst('C:\Dokumente und Einstellungen\mega\Eigene Dateien\Homepage' +
           '\*.*', faAnyFile, SearchRec);
  repeat
    ListBox1.items.add(searchrec.Name);
    GetFileDate(searchrec.Name, erstellung, zugriff, schreibzugriff);



    ShowMessage('Erstellung: '+DateTimeToStr(erstellung)+#13#10+'Letzter Zugriff: '+
  DateTimeToStr(zugriff)+#13#10+'Letzter Schreibzugriff: '+DateTimeToStr(schreibzugriff)+
  #12#10+'Dateiname: '+ searchrec.Name);
  until FindNext(searchrec) <> 0;
  findclose(searchrec);
end;
Das Problem ist, das er bei allen Daten, die er anzeigen soll, immer 30.12.1899 anzeigt!

Wie kann das sein? Soooo alt sind meine Daten nun auch wieder nicht....


Gruß zebrafalke
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:20 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 by Thomas Breitkreuz