Mit der AIR-Datei-API können Sie grundlegende Funktionen zur Interaktion mit Dateien in Ihre Anwendungen einbinden. So können Sie etwa Dateien lesen und in Dateien schreiben, Dateien kopieren, löschen usw. Da Ihre Anwendungen auf das lokale Dateisystem zugreifen können, sollten Sie den Abschnitt
AIR-Sicherheit
lesen.
Hinweis:
Sie haben die Möglichkeit, einen Dateityp mit einer AIR-Anwendung zu verknüpfen (sodass die Anwendung bei Doppelklick auf eine Datei dieses Typs geöffnet wird). Weitere Informationen finden Sie unter
Verwalten von Dateiverknüpfungen
.
Abrufen von Datei-Informationen
Die File-Klasse umfasst die folgenden Eigenschaften, die Informationen über die Datei oder das Verzeichnis bereitstellen, auf die ein File-Objekt zeigt:
Eigenschaft
|
Beschreibung
|
creationDate
|
Das Erstellungsdatum der Datei auf der lokalen Festplatte.
|
creator
|
Veraltet. – Verwenden Sie die Eigenschaft
extension
. (Diese Eigenschaft nennt den Macintosh-Erstellertyp der Datei und wird nur mit Mac OS-Versionen, die älter als Mac OS X sind, verwendet.)
|
downloaded
|
(AIR 2 und höher) Gibt an, ob die referenzierte Datei bzw. das referenzierte Verzeichnis (aus dem Internet) heruntergeladen wurde oder nicht. Diese Eigenschaft ist nur unter Betriebssystemen, in denen Dateien als heruntergeladen gekennzeichnet werden können, von Bedeutung:
|
exists
|
Diese Eigenschaft gibt an, ob die Datei bzw. das Verzeichnis, auf die bzw. das verwiesen wird, vorhanden ist.
|
extension
|
Die Dateierweiterung, d. h. der Teil des Namens, der hinter dem letzten Punkt (.) steht. Der Punkt selbst gehört nicht zur Erweiterung. Wenn der Dateiname keinen Punkt enthält, ist die Erweiterung
null
.
|
icon
|
Ein Icon-Objekt, das die für diese Datei definierten Symbole enthält.
|
isDirectory
|
Gibt an, ob das File-Objekt auf ein Verzeichnis verweist.
|
modificationDate
|
Das Datum, an dem die Datei bzw. das Verzeichnis auf der lokalen Festplatte zuletzt geändert wurde.
|
name
|
Der Name der Datei bzw. des Verzeichnisses auf der lokalen Festplatte (einschließlich Dateierweiterung, falls vorhanden).
|
nativePath
|
Der vollständige Pfad in der Schreibweise des Host-Betriebssystems (siehe
Pfade von File-Objekten
).
|
parent
|
Der Ordner, der den vom File-Objekt repräsentierten Ordner bzw. die Datei enthält. Die Eigenschaft hat den Wert
null
, wenn das File-Objekt auf eine Datei oder ein Verzeichnis im Stammverzeichnis des Dateisystems verweist.
|
size
|
Die Größe der Datei auf der lokalen Festplatte in Byte.
|
type
|
Veraltet. – Verwenden Sie die Eigenschaft
extension
. (Auf Macintosh-Rechnern ist der Wert dieser Eigenschaft ein Dateityp aus vier Zeichen, wird aber nur mit Mac OS-Versionen, die älter als Mac OS X sind, verwendet.)
|
url
|
Die URL der Datei bzw. des Verzeichnisses. (siehe
Pfade von File-Objekten
).
|
Einzelheiten zu diesen Eigenschaften finden Sie im Eintrag zur File-Klasse im
ActionScript 3.0-Referenzhandbuch für die Adobe Flash-Plattform
.
Kopieren und Verschieben von Dateien
Die File-Klasse umfasst zwei Methoden für das Kopieren von Dateien und Verzeichnissen:
copyTo()
und
copyToAsync()
. Die File-Klasse umfasst zwei Methoden für das Verschieben von Dateien und Verzeichnissen:
moveTo()
und
moveToAsync()
. Die Methoden
copyTo()
und
moveTo()
arbeiten synchron, während die Methoden
copyToAsync()
und
moveToAsync()
asynchron arbeiten (siehe
Grundlegende Dateioperationen
).
Um eine Datei zu kopieren oder zu verschieben, richten Sie zwei File-Objekte ein. Das eine zeigt auf die zu kopierende bzw. zu verschiebende Datei und ruft die Methode auf. Das andere zeigt auf den Zielpfad (auch „Ergebnispfad“ genannt).
Im Folgenden wird die Datei „test.txt“ vom Unterverzeichnis „AIR Test“ des Dokumentenverzeichnisses des Benutzers in eine Datei mit dem Namen „copy.txt“ desselben Verzeichnisses kopiert:
var original:File = File.documentsDirectory.resolvePath("AIR Test/test.txt");
var newFile:File = File.resolvePath("AIR Test/copy.txt");
original.copyTo(newFile, true);
In diesem Beispiel wird der Wert des Parameters
overwrite
der Methode
copyTo()
(der zweite Parameter) auf
true
gesetzt. Indem Sie
overwrite
auf
true
setzen, wird eine eventuell vorhandene Zieldatei überschrieben. Dieser Parameter ist optional. Wenn Sie ihn auf
false
setzen (den Standardwert), löst die Operation ein IOErrorEvent-Ereignis aus, wenn die Zieldatei bereits existiert (und die Datei wird nicht kopiert).
Die „Async“-Versionen für das Kopieren und Verschieben arbeiten asynchron. Verwenden Sie die
addEventListener()
-Methode wie folgt, um die Fertigstellung der Aufgabe oder Fehlerbedingung zu überwachen:
var original = File.documentsDirectory;
original = original.resolvePath("AIR Test/test.txt");
var destination:File = File.documentsDirectory;
destination = destination.resolvePath("AIR Test 2/copy.txt");
original.addEventListener(Event.COMPLETE, fileMoveCompleteHandler);
original.addEventListener(IOErrorEvent.IO_ERROR, fileMoveIOErrorEventHandler);
original.moveToAsync(destination);
function fileMoveCompleteHandler(event:Event):void {
trace(event.target); // [object File]
}
function fileMoveIOErrorEventHandler(event:IOErrorEvent):void {
trace("I/O Error.");
}
Die File-Klasse umfasst zudem die Methoden
File.moveToTrash()
und
File.moveToTrashAsync()
, die eine Datei oder ein Verzeichnis in den Papierkorb des Systems verschieben.
Löschen von Dateien
Die File-Klasse umfasst eine
deleteFile()
- und eine
deleteFileAsync()
-Methode. Beide Methoden löschen Dateien, wobei die erste synchron arbeitet und die zweite asynchron (siehe auch
Grundlegende Dateioperationen
).
Im folgenden Code beispielsweise wird die Datei „test.txt“ synchron aus dem Dokumentenverzeichnis des Benutzers gelöscht:
var file:File = File.documentsDirectory.resolvePath("test.txt");
file.deleteFile();
Im folgenden Code wird das Unterverzeichnis „AIR Test“ asynchron aus dem Dokumentenverzeichnis des Benutzers gelöscht:
var file:File = File.documentsDirectory.resolvePath("test.txt");
file.addEventListener(Event.COMPLETE, completeHandler)
file.deleteFileAsync();
function completeHandler(event:Event):void {
trace("Deleted.")
}
Die Klasse umfasst zudem die Methoden
moveToTrash()
und
moveToTrashAsync()
, mit denen Sie eine Datei oder ein Verzeichnis in den Papierkorb des Systems verschieben können. Weitere Informationen finden Sie unter
Verschieben einer Datei in den Papierkorb
.
Verschieben einer Datei in den Papierkorb
Die File-Klasse umfasst eine
moveToTrash()
- und eine
moveToTrashAsync()
-Methode. Beide Methoden senden eine Datei oder ein Verzeichnis an den Papierkorb des Systems, wobei die erste synchron arbeitet und die zweite asynchron (siehe auch
Grundlegende Dateioperationen
).
Im folgenden Code beispielsweise wird die Datei „test.txt“ synchron vom Dokumentenverzeichnis des Benutzers in den Systempapierkorb verschoben:
var file:File = File.documentsDirectory.resolvePath("test.txt");
file.moveToTrash();
Hinweis:
Bei Betriebssystemen, die keinen wiederherstellbaren Papierkorb haben, werden die Dateien sofort gelöscht.
Erstellen einer temporären Datei
Die File-Klasse beinhaltet die Methode
createTempFile()
, die im Systemordner für temporäre Dateien eine Datei anlegt. Hier ein Beispiel:
var temp:File = File.createTempFile();
Die Methode
createTempFile()
erstellt automatisch eine eindeutige temporäre Datei (sodass Sie nicht selbst einen eindeutigen Pfad ermitteln müssen).
In einer temporären Datei können Sie vorübergehend Informationen speichern, die nur während der aktuellen Anwendungssitzung benötigt werden. Beachten Sie, dass es eine neue
createTempDirectory()
-Methode gibt, um im Systemordner für temporäre Dateien neue, eindeutige Verzeichnisse zu erstellen.
Da die temporäre Datei
nicht
auf allen Geräten automatisch gelöscht wird, sollten Sie sie evtl. löschen, bevor die Anwendung geschlossen wird.
|
|
|