De runtime biedt u mogelijkheden om te werken met mappen in het lokale bestandssysteem.
Zie
File-objecten een map laten aanwijzen
voor meer informatie over het maken van File-objecten die mappen aanwijzen.
Mappen maken
Met de methode
File.createDirectory()
kunt u een map maken. Met de volgende code maakt u bijvoorbeeld een map met de naam AIR Test die een submap is van de homemap van de gebruiker:
var dir:File = File.userDirectory.resolvePath("AIR Test");
dir.createDirectory();
Als die map al bestaat, doet de methode
createDirectory()
verder niets.
In bepaalde modi maakt een FileStream-object mappen wanneer bestanden worden geopend. Ontbrekende mappen worden gemaakt wanneer u een FileStream-instantie instantieert met de parameter
fileMode
van de
FileStream()
-constructor ingesteld op
FileMode.APPEND
of
FileMode.WRITE
. Zie
Workflow voor het lezen van en schrijven naar bestanden
voor meer informatie.
Tijdelijke mappen maken
De klasse File bevat de methode
createTempDirectory()
, die een map maakt in de Temp-map van het systeem, zoals in het volgende voorbeeld:
var temp:File = File.createTempDirectory();
De methode
createTempDirectory()
maakt automatisch een unieke tijdelijke map (zodat u niet zelf een nieuwe unieke locatie hoeft te bepalen).
U kunt een tijdelijke map gebruiken om voorlopig tijdelijke bestanden op te slaan die worden gebruikt voor een sessie van de toepassing. Er is ook de methode
createTempFile()
voor het maken van nieuwe unieke tijdelijke bestanden in de Temp-map van het systeem.
U kunt desgewenst de tijdelijke map verwijderen voordat de toepassing wordt gesloten, aangezien deze map
niet
automatisch wordt verwijderd op alle apparaten.
Opsommingen maken van mappen
U kunt de methode
getDirectoryListing()
of
getDirectoryListingAsync()
van een File-object gebruiken om een array op te halen van File-objecten die bestanden en submappen aanwijzen in een map.
De volgende code geeft bijvoorbeeld een lijst weer van de inhoud van de documentenmap van de gebruiker (zonder submappen te doorzoeken):
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);
}
Als u de asynchrone versie van de methode gebruikt, heeft het gebeurtenisobject
directoryListing
de eigenschap
files
, die bestaat uit de array van File-objecten die betrekking hebben op de mappen:
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);
}
}
Mappen kopiëren en verplaatsen
U kunt een map kopiëren of verplaatsen met behulp van dezelfde methoden die u gebruikt om een bestand te kopiëren of te verplaatsen. Met de volgende code kopieert u bijvoorbeeld een map synchroon:
var sourceDir:File = File.documentsDirectory.resolvePath("AIR Test");
var resultDir:File = File.documentsDirectory.resolvePath("AIR Test Copy");
sourceDir.copyTo(resultDir);
Wanneer u "true" opgeeft voor de parameter
overwrite
van de methode
copyTo()
, worden alle bestanden en mappen in een bestaande doelmap verwijderd en vervangen door de bestanden en mappen uit de bronmap (zelfs als het doelbestand niet bestaat in de bronmap).
De map die u opgeeft bij de parameter
newLocation
van de methode
copyTo()
, definieert het pad naar de resulterende map. Deze parameter definieert
niet
de
bovenliggende
map die de resulterende map zal bevatten.
Zie
Bestanden kopiëren en verplaatsen
voor meer informatie.
De inhoud van mappen verwijderen
De klasse File bevat de methoden
deleteDirectory()
en
deleteDirectoryAsync()
. Deze methoden verwijderen mappen, de eerste op synchrone wijze, de tweede op asynchrone wijze (zie
Basisinformatie over AIR-bestanden
). Beide methoden bevatten de parameter
deleteDirectoryContents
(die een Booleaanse waarde heeft). Wanneer deze parameter wordt ingesteld op
true
(de standaardwaarde is
false
), verwijdert de oproep van deze methode mappen die niet leeg zijn. Bij gebruik van de standaardwaarde worden alleen lege mappen verwijderd.
De volgende code verwijdert bijvoorbeeld synchroon de submap AIR Test van de documentenmap van de gebruiker:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.deleteDirectory(true);
De volgende code verwijdert asynchroon de submap AIR Test van de documentenmap van de gebruiker:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.addEventListener(Event.COMPLETE, completeHandler)
directory.deleteDirectoryAsync(true);
function completeHandler(event:Event):void {
trace("Deleted.")
}
Ook beschikbaar zijn de methoden
moveToTrash()
en
moveToTrashAsync()
, die u kunt gebruiken om een map te verplaatsen naar de systeemprullenbak. Zie
Bestanden verplaatsen naar de prullenbak
voor meer informatie.
|
|
|