Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: FileExists funktioniert nicht bei Android?

  Alt 13. Sep 2022, 10:27
In Delphi/Pascal kann man diese Open/Create-Modi garnicht Kombinieren,
das geht nur mit einem optionalen Share-Mode.

Es steht so aber auch ganz genau in der Hilfe beschrieben.
Zitat:
The open mode must be one of the following values:

Ja, in der WinAPI gibt es ein OpenAlways (Öffnen oder Erstellen wenn noch nicht da), aber nicht in Delphi.


Entweder du prüfst mit FileExists und nimmst dann fmCreate oder fmOpenWrite
oder du nimmst THandleStream mit CreateFile und kannst dort die passende dwCreationDisposition OPEN_ALWAYS verwenden.

[add]
https://quality.embarcadero.com/brow...OPEN_ALWAYS%22



[add]
Delphi-Quellcode:
const
  OpenMode: array[Boolean] of Word = (fmCreate, fmOpenWrite);
var
  fstream: TFilestream;
  fn: string;
  x: boolean;
begin
  fn := TPath.GetSharedDownloadsPath + TPath.DirectorySeparatorChar + 'Test.txt';
  x := fileexists(fn);
  fstream := TFilestream.Create(fn, OpenMode[x]);

  // oder
  fstream := TFilestream.Create(fn, IfThen(x, fmOpenWrite, fmCreate));
$2B or not $2B

Geändert von himitsu (13. Sep 2022 um 10:48 Uhr)
  Mit Zitat antworten Zitat