Bezeichnung
CreateFile -- Erstellt eine neue Datei (V11.0)
Übersicht
f$ = CreateFile(path$, file$[, table])
Bibliothek
dos

Beschreibung
Dieser Befehl erstellt die durch 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
Die Sammlung der heruntergeladenen Dateien im MediaStore.

#MEDIA_IMAGES
Die Sammlung der Bilder im MediaStore.

#MEDIA_VIDEOS
Die Sammlung der Videos im MediaStore.

#MEDIA_MUSIC
Die Sammlung der Audiodateien im MediaStore.

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:
Mit diesem Tag können Sie ein oder mehrere Datei-Adaptermodule angeben, die zum Erstellen der angegebenen Datei aufgerufen werden sollen. Dies muss auf eine Zeichenkette gesetzt werden, die den Namen eines oder mehreren Adaptermodulen enthält. Standardmäßig wird das mit SetDefaultAdapter() festgelegte Adaptermodul verwendet. Siehe Lade- und Adaptermodule für Details.

UserTags:
Mit diesem Tag können zusätzliche Daten angegeben werden, die an Datei-Adaptermodule übergeben werden sollen. Wenn Sie dieses Tag verwenden, müssen Sie es auf eine Tabelle mit Schlüssel-Wert-Paaren setzen, die die zusätzlichen Daten enthalten, die an Plugins übergeben werden sollen. Siehe Benutzer-Tags für Details.

MIMEType:
Der gewünschte MIME-Typ für die Datei. Dies wird derzeit nur auf Android unterstützt.

Eingaben
path$
Pfad für die neue Datei
file$
Dateiname für die neue Datei
table
Optional: Tabelle mit weiteren Parametern
Rückgabewerte
f$
Pfad zur neu erstellten Datei

Navigation zeigen