Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   TimeStamp Datei... (https://www.delphipraxis.net/82399-timestamp-datei.html)

ColdFire 12. Dez 2006 15:59


TimeStamp Datei...
 
Hy Leute !

Ich habe eine funktion gefunden mit der ich laut Beschreibung den timestamp einer datei auslesen kann...

Nur stimm das nicht!

Code:
Delphi-Quellcode:
    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; // 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;

  procedure TForm1.Button1Click(Sender: TObject);
    var
      Date1,
      Date2,
      Date3  : TDateTime;

    begin
      if GetFileTimes(('C:\text.txt'), Date1,Date2,Date3) then
       Edit1.text:= DateTimeToStr(Date1);
       Edit2.text:= DateTimeToStr(Date2);
       Edit3.text:= DateTimeToStr(Date3);
    end;
Kann mit jemand sagen wiso ich nicht das richtige Datum bekomme ?
Kann nur was mit der länderkennung zu tun haben oder ?

lg CF

[edit=r_kerber]code- durch delphi-Tags ersetzt Mfg, r_kerber[/edit]

marabu 12. Dez 2006 16:59

Re: TimeStamp Datei...
 
Hi,

du musst den Code aus der Library nicht kopieren, es reicht wenn du einen Link darauf setzt. Wichtiger wäre, dass du das erwartete und das erhaltene Ergebnis beschreibst - auch wie du das erwartete Ergebnis ermittelt hast. An der Abweichung kann man eventuell schon erkennen was schief läuft. Betriebssystem und Dateisystem spielen mitunter auch eine Rolle.

Freundliche Grüße

DP-Maintenance 12. Dez 2006 18:57

DP-Maintenance
 
Dieses Thema wurde von "r_kerber" von "Programmieren allgemein" nach "Windows API / MS.NET Framework API" verschoben.
Eindeutig eine Frage zu API-Programmierung mit Delphi.

ColdFire 18. Dez 2006 10:05

Re: TimeStamp Datei...
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hmm... also ich habe mir eine Datei am 12.12. erstellt und eine datei heute 18.12.

Egal welche datei ich einlese ich bekomme immer die selbe uhrzeit und datum. Ohne die datei vom 12.12. geändert zu haben.

winnionkel 18. Dez 2006 11:08

Re: TimeStamp Datei...
 
Hallo,

warum machst du das nicht mit 'GetFileVersionInfo'.
Da bekommst du alle Informationen die du brauchst.

Gruß Winni

raiguen 18. Dez 2006 11:11

Re: TimeStamp Datei...
 
Code:
if GetFileTimes(('C:\text.txt'), Date1,Date2,Date3) then
Könnte es vllt daran liegen dass der erste Parameter festcodiert ist ? :gruebel:
Ansonsten funzt das einwandfrei :wink:

ColdFire 18. Dez 2006 12:12

Re: TimeStamp Datei...
 
@raiguen
Also bei dir stimmen alle 3 Parameter ?

Dann muss es wohl eine Systemeinstellung sein.*strange*

lg CF


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