Die Laufzeitumgebung stellt Ihnen Möglichkeiten bereit, um mit Verzeichnissen auf dem lokalen Dateisystem zu arbeiten.
Erläuterungen zum Erstellen von File-Objekten, die auf Verzeichnisse verweisen, finden Sie unter
Verweisen vom File-Objekt auf ein Verzeichnis
.
Erstellen von Verzeichnissen
Mithilfe der Methode
File.createDirectory()
können Sie ein Verzeichnis erstellen. Im folgenden Code beispielsweise wird ein Verzeichnis mit dem Namen „AIR Test“ als Unterverzeichnis des Stammverzeichnisses eines Benutzers erstellt:
var dir:File = File.userDirectory.resolvePath("AIR Test");
dir.createDirectory();
Ist das Verzeichnis bereits vorhanden, hat die Methode
createDirectory()
keine Auswirkung.
In einigen Modi erstellt ein FileStream-Objekt beim Öffnen von Dateien ein Verzeichnis. Fehlende Verzeichnisse werden erstellt, wenn Sie eine FileStream-Instanz instantiieren und dabei den Parameter
fileMode
des
FileStream()
-Konstruktors auf
FileMode.APPEND
oder
FileMode.WRITE
setzen. Weitere Informationen finden Sie unter
Workflow zu Lese- und Schreibvorgängen in Dateien
.
Erstellen eines temporären Verzeichnisses
Die File-Klasse beinhaltet die Methode
createTempDirectory()
, die im Systemordner für temporäre Dateien ein Verzeichnis anlegt. Hier ein Beispiel:
var temp:File = File.createTempDirectory();
Die Methode
createTempDirectory()
erstellt automatisch ein eindeutiges temporäres Verzeichnis (sodass Sie nicht selbst einen eindeutigen Pfad ermitteln müssen).
In einem temporären Verzeichnis können Sie Dateien vorübergehend speichern, die nur während der aktuellen Anwendungssitzung benötigt werden. Beachten Sie, dass es eine neue
createTempFile()
-Methode gibt, um im Systemordner für temporäre Dateien neue, eindeutige Dateien zu erstellen.
Da das temporäre Verzeichnis
nicht
auf allen Geräten automatisch gelöscht wird, sollten Sie es evtl. löschen, bevor die Anwendung geschlossen wird.
Erstellen von Verzeichnislisten
Mithilfe der Methoden
getDirectoryListing()
und
getDirectoryListingAsync()
eines File-Objekts können Sie einen Array mit File-Objekten abrufen, die auf Dateien und Unterverzeichnisse in einem bestimmten Verzeichnis zeigen.
Im folgenden Beispielcode wird der Inhalt des Benutzerdokumentverzeichnisses aufgelistet (ohne Untersuchung der Unterverzeichnisse):
var directory:File = File.documentsDirectory;
var contents:Array = directory.getDirectoryListing();
for (var i:uint = 0; i < contents.length; i++)
{
trace(contents[i].name, contents[i].size);
}
Wenn Sie die asynchrone Version der Methode verwenden, besitzt das Ereignisobjekt
directoryListing
eine
files
-Eigenschaft, welche ein Array an File-Objekten, die zum betreffenden Verzeichnis gehören, darstellt:
var directory:File = File.documentsDirectory;
directory.getDirectoryListingAsync();
directory.addEventListener(FileListEvent.DIRECTORY_LISTING, dirListHandler);
function dirListHandler(event:FileListEvent):void
{
var contents:Array = event.files;
for (var i:uint = 0; i < contents.length; i++)
{
trace(contents[i].name, contents[i].size);
}
}
Kopieren und Verschieben von Verzeichnissen
Sie können ein Verzeichnis mit denselben Methode kopieren oder verschieben, die Sie auch zum Kopieren und Verschieben von Dateien verwenden. Im folgenden Beispielcode wird ein Verzeichnis synchron kopiert:
var sourceDir:File = File.documentsDirectory.resolvePath("AIR Test");
var resultDir:File = File.documentsDirectory.resolvePath("AIR Test Copy");
sourceDir.copyTo(resultDir);
Wenn Sie für den Parameter
overwrite
der Methode
copyTo()
den Wert „true“ angeben, werden alle Dateien und Ordner in einem vorhandenen Zielverzeichnis durch die Dateien und Ordner im Quellverzeichnis ersetzt (auch wenn die Zieldatei im Quellverzeichnis nicht existiert).
Das Verzeichnis, das Sie im Parameter
newLocation
der Methode
copyTo()
angeben, bestimmt den Pfad zum Ergebnisverzeichnis, aber
nicht
das
übergeordnete
Verzeichnis, in dem das Ergebnisverzeichnis enthalten sein wird.
Weitere Informationen finden Sie unter
Kopieren und Verschieben von Dateien
.
Löschen des Verzeichnisinhalts
Die File-Klasse umfasst eine
deleteDirectory()
- und eine
deleteDirectoryAsync()
-Methode. Beide Methoden löschen Verzeichnisse, wobei die erste synchron arbeitet und die zweite asynchron (siehe auch
Grundlegende Dateioperationen
). Auch besitzen beide den booleschen Parameter
deleteDirectoryContents
. Ist dieser auf
true
gesetzt, löscht der Methodenaufruf nicht-leere Verzeichnisse. Ist er auf
false
gesetzt (der Standardwert), werden nur leere Verzeichnisse gelöscht.
Im folgenden Code beispielsweise wird das Unterverzeichnis „AIR Test“ synchron aus dem Dokumentenverzeichnis des Benutzers gelöscht:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.deleteDirectory(true);
Im folgenden Code wird das Unterverzeichnis „AIR Test“ asynchron aus dem Dokumentenverzeichnis des Benutzers gelöscht:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.addEventListener(Event.COMPLETE, completeHandler)
directory.deleteDirectoryAsync(true);
function completeHandler(event:Event):void {
trace("Deleted.")
}
Die Klasse umfasst zudem die Methoden
moveToTrash()
und
moveToTrashAsync()
, mit denen Sie ein Verzeichnis in den Papierkorb des Systems verschieben können. Weitere Informationen finden Sie unter
Verschieben einer Datei in den Papierkorb
.
|
|
|