Arbeiten mit Dateien

Adobe 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-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:

  • Windows XP Service Pack 2 und höher und Windows Vista

  • Mac OS 10.5 und höher

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.