f$ = CreateFile(path$, file$[, table])
file$ angegebene Datei im
durch path$ angegebenen Pfad. Dies entspricht im Wesentlichen
dem Aufruf von OpenFile() mit #MODE_WRITE für die Datei
und dem anschließenden Schließen, sodass Sie im Grunde eine
leere Datei erhalten. Der Unterschied besteht darin, dass CreateFile()
kein einzelnes Pfadargument akzeptiert, das sowohl den Pfad
als auch die Dateispezifikation enthält, sondern zwei separate
Argumente, die das Verzeichnis, in dem die Datei erstellt werden
soll, und den Namen der zu erstellenden Datei angeben. Außerdem
gibt es den Pfad zu der gerade erstellten Datei zurück. All
dies macht CreateFile() geeignet für die Verwendung mit dem
Storage Access Framework (SAF) von Android und mit MediaStore
auf Android, die beide etwas anders funktionieren als herkömmliche
Pfadangaben. Siehe Arbeiten mit Android-URIs für Details.
Beachten Sie, dass im Gegensatz zu OpenFile() CreateFile()
fehlschlägt, wenn die Datei bereits vorhanden ist, außer unter
Android bei Verwendung der SAF- oder MediaStore-URIs. In diesem
Fall schlägt CreateFile() niemals fehl, wenn die Datei bereits
vorhanden ist. Stattdessen wird ein Zähler wie (1), (2) ...
an den Dateinamen angehängt. Um den tatsächlichen Dateinamen
der gerade erstellten Datei herauszufinden, verwenden Sie GetFileAttributes()
und das Tabellen-Tag Name.
Beachten Sie, dass CreateFile() unter Android bei der Verwendung
von SAF- oder MediaStore-URIs sehr wichtig ist, da bei diesen
URIs zuerst Dateien erstellt werden müssen, bevor Sie in sie
schreiben können. Wenn Sie beispielsweise einen Pinsel mit SAF
oder MediaStore in einer Datei speichern möchten, können Sie
nicht einfach SaveBrush() aufrufen, sondern müssen zuerst
die Datei mit CreateFile() erstellen und dann SaveBrush()
für die neu erstellte Datei aufrufen. Siehe Arbeiten mit Android-URIs für Details.
Genau wie FullPath(), unterstützt CreateFile() auch die
folgenden speziellen Konstanten auf Android, wenn Sie eine MediaStore-URI
erstellen müssen:
#MEDIA_DOWNLOADS
#MEDIA_IMAGES
#MEDIA_VIDEOS
#MEDIA_MUSIC
Wenn eine dieser speziellen Konstanten übergeben wird, kann
file$ ein einzelnes Unterverzeichnis enthalten, das durch einen
einzelnen Schrägstrich von der eigentlichen Datei getrennt ist,
z.B. "subdir/file", um auf eine Datei in einem MediaStore-Unterverzeichnis
zu verweisen. Beachten Sie jedoch, dass nur eine Verschachtelungsebene
zulässig ist, sodass file$ nicht mehr als ein Unterverzeichnis
enthalten darf. Siehe Arbeiten mit Android-URIs für Details.
CreateFile() akzeptiert auch ein optionales Tabellenargument,
das zur Übergabe zusätzlicher Parameter verwendet werden kann.
Derzeit werden die folgenden Tabellenelemente unterstützt:
Adapter:
UserTags:
MIMEType: