Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.203 Beiträge
 
Delphi 12 Athens
 
#5

AW: Schreibzugriff Datei prüfen

  Alt 23. Jun 2020, 18:56
Zitat:
Delphi-Quellcode:
  FS := TFile.Create(fName);
  try
    result := true;
  finally
    FS.Free;
  end;
  if TFile.Exists(fName) then begin
    TFile.Delete(fName);
  end;
Exists ist sinnlos, denn wenn es ging, dann existiert die Datei und wenn Create nicht ging, dann kommt das Programm garnicht bis da hin.


Zitat:
Folgendes fängt die Fehlermeldung ab:
Da drin aber auf Keinen Fall auf FS zugreifen, denn der Variable wurde ja nichts zugewiesen.

Delphi-Quellcode:
try
  fName := TPath.Combine(ExtractFilePath(fDir), 'test.tmp');
  FS := TFile.Create(fName);
  try
    Result := True;
  finally
    FS.Free;
    TFile.Delete(fName);
  end;
except
  Result := False;
end;
Delphi-Quellcode:
try
  fName := TPath.Combine(ExtractFilePath(fDir), 'test.tmp');
  TFile.WriteAllText(Name, '');
  TFile.Delete(fName);
  Result := True;
except
  Result := False;
end;
Direkt mit der WinAPI ist's hier aber "schöner", da man dann die Exceptions nicht hat, sondern nur schön stille Result-Werte.
Delphi-Quellcode:
fName := TPath.Combine(ExtractFilePath(fDir), 'test.tmp');
H := CreateFile(PChar(fName), GENERIC_WRITE, 0, nil, {CREATE_ALWAYS} CREATE_NEW, {0} FILE_ATTRIBUTE_TEMPORARY, 0);
CloseHandle(H);
//DeleteFile(PChar(fName)); // nicht nötig, da FILE_ATTRIBUTE_TEMPORARY, womit Windows die Datei automatisch löscht
Result := H <> INVALID_HANDLE_VALUE;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat