Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Wie feststellen, ob eine Datei gelesen werden kann?

  Alt 15. Apr 2016, 21:22
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;
  Mit Zitat antworten Zitat