AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FileAge unter Win7 und XP

Ein Thema von OsCor · begonnen am 25. Feb 2011 · letzter Beitrag vom 8. Mär 2011
Antwort Antwort
OsCor

Registriert seit: 1. Jan 2009
Ort: Kenzingen, Südbaden
99 Beiträge
 
Delphi 10.4 Sydney
 
#1

FileAge unter Win7 und XP

  Alt 25. Feb 2011, 15:11
Delphi-Version: 2007
Hallo Foristen,

zum Zwecke der Versionsaktualisierung benutze ich (die überladene Version von) FileAge:
Delphi-Quellcode:
var
    VDTW, VDTWAlt : TDateTime;
begin
    FileAge('P:\D1\Protokolle\DTW\DTWV2PR.exe', VDTW);
    FileAge('P:\D1\Protokolle\DTWAlt\DTWV2PR.exe', VDTWAlt);
Unter Win7 zeigen die Editfelder für alle Datumsangaben den 1.1.2000 an, unter XP den korrekten Zeitpunkt mit Uhrzeit.

Da ich unter Win7 entwickle, die User XP nutzen, ist die Arbeit mühsam.
Was passiert denn da?

Oswald
  Mit Zitat antworten Zitat
OsCor

Registriert seit: 1. Jan 2009
Ort: Kenzingen, Südbaden
99 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: FileAge unter Win7 und XP

  Alt 8. Mär 2011, 12:36
Nachdem bisher niemand mit meinem Problem was anfangen konnte, habe ich mal einen Test durchgeführt:

Parallel werden FileAge und FileGetAttributesEx verwendet:

Delphi-Quellcode:
var
  Form1: TForm1;
  fn : String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
    fa, d : TDateTime;
begin
    FileAge(fn, fa);
    Edit1.Text := DateTimeToStr(fa);
    d := aenderung(fn);
    Edit3.Text := FormatDateTime('dd.mm.yyyy hh:nn:ss', d);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    fn := 'P:\XXX\YYY\DTW\DTWV2PR.exe';
end;

function TForm1._FileTimeToDateTime(ft: _FileTime): TDateTime;
var
    lft: _FileTime;
    dt: DWord;
begin
    FileTimeToLocalFileTime(ft, lft);
    FileTimeToDosDateTime(lft, LongRec(dt).Hi, LongRec(dt).Lo);
    Result := FileDateToDateTime(dt);
end;

function TForm1.aenderung(Datei: String): TDateTime;
var
    WAD: _WIN32_FILE_ATTRIBUTE_DATA;
begin
    GetFileAttributesEx(PChar(Datei), GetFileExInfoStandard, @WAD);
    Result := _FileTimeToDateTime(WAD.ftLastWriteTime);
end;
Leider wird in beiden Fällen unter Win 7 der 1.1.2000 als Datum ausgegeben (unter XP ist alles korrekt). Kann jetzt jemand was dazu sagen?

Oswald
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:01 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