Hallo,
ich hab jetzt zwei verschiedene Methoden verwendet um das Datum von Dateien aus einem Netzwerkordner auszulesen. Die Dateien sind physisch vorhanden und zeigen in den Dateieigenschaften über den Explorer auch normale Informationen an.
Zur Fehlersuche verwende ich momentan folgendes:
Delphi-Quellcode:
u := QuotedStr( q_FileLinkTemp.FieldByName('dirlink').AsString + q_FileLinkTemp.FieldByName('filelink').AsString );
s := GetFileDate( u );
try
t := DateToStr( FileDateToDateTime( FileAge( u ) ) );
except
t := '0';
end;
hier die GetFileData Funktion:
Delphi-Quellcode:
function Tf_main.GetFileDate(const aName:String):String;
var fh :THandle;
fdata :TWin32FindData;
ft, wt :TFileTime;
st :TSystemTime;
begin
{ if FileExists(aName) then
begin
Result := FormatDateTime('yyyy-mm-dd', FileDateToDateTime(FileAge(aName)));
end
else
begin
Result := FormatDateTime('yyyy-mm-dd',MaxInt);
end;
}
Result:='';
fh:=FindFirstFile(PChar(aName), fdata);
if (fh<>Invalid_Handle_Value) then
begin
ft:=fdata.ftLastWriteTime;
FileTimeToLocalFileTime(ft, wt);
FileTimeToSystemTime(wt, st);
with st do Result:=Format('%0.2d.%0.2d.%0.4d', [wDay, wMonth, wYear]);
end; // If
Windows.FindClose(fh);
end;
Als Ergebnis erhalte ich eben bei beiden Methoden 0 (aus dem TryExcept) oder "0000-00-00" (aus der Funktion). Und da es sich um knapp 400.000 Dateien handelt, die nicht "auslesbar" sind, kann ich einen Einzelfall ausschließen.
Danke euch!