Mit diesem Code kann ich den Fehler bei einer geöffneten Datei umgehen:
Delphi-Quellcode:
function MyTempCopyFile(const AFile: string): string;
// Kopiert eine Datei in den Temp-Ordner und gibt den Namen der Kopie zurück (wenn erfolgreich)
var
ThisTempFile: string;
begin
Result := '';
try
ThisTempFile := TPath.GetTempFileName;
except
// Todo: Fehler loggen
EXIT;
end;
try
TFile.Copy(AFile, ThisTempFile, True);
except
// Todo: Fehler loggen
EXIT;
end;
Result := ThisTempFile;
end;
// Fehler vermeiden, wenn die Datei etwa in MS Word geöffnet ist:
try
ThisHTMLStr := Trim(TFile.ReadAllText(AHTMLFile));
except
TempCopy := MyTempCopyFile(AHTMLFile);
if TempCopy <> '' then
ThisHTMLStr := Trim(TFile.ReadAllText(TempCopy));
end;