Arbeiten mit DateienAdobe AIR 1.0 und höher 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-InformationenDie File-Klasse umfasst die folgenden Eigenschaften, die Informationen über die Datei oder das Verzeichnis bereitstellen, auf die ein File-Objekt zeigt:
Einzelheiten zu diesen Eigenschaften finden Sie im Eintrag zur File-Klasse im Handbuch ActionScript 3.0 Reference for the Adobe Flash Platform. Kopieren und Verschieben von DateienDie 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 DateienDie 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 PapierkorbDie 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 DateiDie 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. |
|