I körningsversionen finns funktioner som gör att du kan arbeta med kataloger i det lokala filsystemet.
Mer information om hur du skapar File-objekt som pekar mot kataloger finns i
Peka ett File-objekt mot en katalog
.
Skapa kataloger
Med metoden
File.createDirectory()
kan du skapa en katalog. Följande kod skapar en katalog med namnet AIR Test som är en underkatalog till användarens hemkatalog:
var dir:File = File.userDirectory.resolvePath("AIR Test");
dir.createDirectory();
Om katalogen finns utför metoden
createDirectory()
ingenting.
I vissa lägen skapar ett FileStream-objekt också kataloger när filer öppnas. Kataloger som saknas skapas när du instansierar en FileStream-instans med parametern
fileMode
för
FileStream()
-konstruktorn inställd på
FileMode.APPEND
eller
FileMode.WRITE
. Mer information finns i
Arbetsflöde för att läsa och skriva filer
.
Skapa en tillfällig katalog
Klassen File omfattar en
createTempDirectory()
-metod, som skapar en katalog i den tillfälliga katalogmappen för systemet, som i följande exempel:
var temp:File = File.createTempDirectory();
Metoden
createTempDirectory()
skapar automatiskt en unik tillfällig katalog (så att du inte behöver fastställa en ny unik plats).
Du kan använda en tillfällig katalog om du tillfälligt behöver lagra filer som används i en programsession. Observera att det finns en
createTempFile()
-metod för att skapa nya, unika tillfälliga filer i den tillfälliga systemkatalogen.
Du kanske vill ta bort den tillfälliga katalogen innan programmet avslutas, eftersom den
inte
tas bort automatiskt på alla enheter.
Gå igenom kataloger
Med metoden
getDirectoryListing()
eller metoden
getDirectoryListingAsync()
för ett File-objekt kan du hämta en array med File-objekt som pekar mot filer och underkataloger i en katalog.
Följande kod visar innehållet i användarens dokumentkatalog (utan att undersöka underkatalogerna):
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);
}
När du använder den asynkrona versionen av metoden har
directoryListing
-händelseobjektet en
files
-egenskap som utgör arrayen med File-objekt som gäller för kataloger:
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);
}
}
Kopiera och flytta kataloger
Du kan kopiera eller flytta en katalog, med samma metoder som när du kopierar eller flyttar en fil. Följande kod kopierar en katalog synkront:
var sourceDir:File = File.documentsDirectory.resolvePath("AIR Test");
var resultDir:File = File.documentsDirectory.resolvePath("AIR Test Copy");
sourceDir.copyTo(resultDir);
När du anger true för parametern
overwrite
för metoden
copyTo()
tas alla filer och mappar i en befintlig målkatalog bort och ersätts med filerna och mapparna i källkatalogen (även om målfilen inte finns i källkatalogen).
Den katalog som du anger för parametern
newLocation
för metoden
copyTo()
anger sökvägen till den resulterande katalogen. Den anger
inte
den
överordnade
katalog som kommer att innehålla den resulterande katalogen.
Mer information finns i
Kopiera och flytta filer
.
Ta bort innehåll i kataloger
Klassen File omfattar en
deleteDirectory()
-metod och en
deleteDirectoryAsync()
-metod. Dessa metoder tar bort kataloger; den första fungerar synkront medan den andra fungerar asynkront (se
Grunderna för AIR-filer
). Båda metoderna har en
deleteDirectoryContents
-parameter (som använder ett booleskt värde). När den här parametern ställs in på
true
(standardvärdet är
false
) tar anropet till metoden bort alla kataloger som inte är tomma. Annars tas bara tomma kataloger bort.
Följande kod tar synkront bort underkatalogen AIR Test i användarens dokumentkatalog:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.deleteDirectory(true);
Följande kod tar asynkront bort underkatalogen AIR Test i användarens dokumentkatalog:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.addEventListener(Event.COMPLETE, completeHandler)
directory.deleteDirectoryAsync(true);
function completeHandler(event:Event):void {
trace("Deleted.")
}
Metoderna
moveToTrash()
och
moveToTrashAsync()
ingår också, som du använder när du vill flytta en katalog till systemets papperskorg. Mer information finns i
Flytta en fil till papperskorgen
.
|
|
|