Einzelnen Beitrag anzeigen

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, 11: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