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