Arbeta med -filer

Adobe AIR 1.0 och senare

Med API:et för AIR-filer kan du lägga till grundläggande funktioner för filinteraktion i programmet. Du kan till exempel läsa och skriva filer, kopiera och ta bort filer och så vidare. Eftersom programmet har tillgång till det lokala filsystemet bör du läsa igenom AIR-säkerhet om du inte redan har gjort det.

Obs! Du kan associera en filtyp med ett AIR-program (så att programmet öppnas när du dubbelklickar på en fil). Mer information finns i Hantera filassociationer.

Hämta filinformation

Klassen File omfattar följande egenskaper som tillhandahåller information om en fil eller katalog som ett File-objekt pekar mot:

File-egenskap

Beskrivning

creationDate

Det datum filen skapades på den lokala disken.

creator

Föråldrad – använd egenskapen extension. (Den här egenskapen rapporterar Macintosh-skapartypen för filen, som bara används i Mac OS-versioner tidigare än Mac OS X.)

downloaded

(AIR 2 och senare) Indikerar om referensfilen eller katalogen hämtades (från Internet) eller inte. Egenskapen har endast betydelse i operativsystem där hämtade filer kan flaggas:

  • Windows XP Service Pack 2 och senare och på Windows Vista

  • Mac OS 10.5 och senare

exists

Anger om den fil eller katalog som refereras finns.

extension

Ett filnamnstillägg är den del av namnet som följer efter den sista punkten (”.”). (Själva punkten är inte en del av tillägget.) Om det inte finns någon punkt i filnamnet är tillägget null.

icon

Ett Icon-objekt som innehåller de ikoner som har definierats för filen.

isDirectory

Anger om File-objektreferensen är en katalog.

modificationDate

Det datum då filen eller katalogen på den lokala disken senast ändrades.

name

Namnet på filen eller katalogen (inklusive filnamnstillägget, om det finns något) på den lokala disken.

nativePath

Den fullständiga sökvägen i värdoperativsystemets representation. Se Sökvägar till File-objekt.

parent

Mappen som innehåller mappen eller filen som representeras av File-objektet. Den här egenskapen är null om File-objektet refererar till en fil eller katalog i filsystemets rot.

size

Filens storlek på den lokala disken, i byte.

type

Föråldrad – använd egenskapen extension. (I Macintosh anger den här egenskapen filtypen på fyra tecken, som bara används i Mac OS-versioner tidigare än Mac OS X.)

url

URL:en till filen eller katalogen. Se Sökvägar till File-objekt.

Mer information om dessa egenskaper finns i avsnittet om File-klassen i Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen.

Kopiera och flytta filer

Klassen File omfattar två metoder för att kopiera filer eller kataloger: copyTo() och copyToAsync(). Klassen File omfattar två metoder för att flytta filer eller kataloger: moveTo() och moveToAsync(). Metoderna copyTo() och moveTo() fungerar synkront, och metoderna copyToAsync() och moveToAsync() fungerar asynkront (se Grunderna för AIR-filer).

Om du vill kopiera eller flytta en fil ska du ställa in två File-objekt. Ett pekar mot filen som ska kopieras eller flyttas, och detta är objektet som anropar metoden copy eller move. Det andra pekar mot målsökvägen (resultatet).

Koden nedan kopierar en test.txt-fil från underkatalogen AIR Test i användarens dokumentkatalog till en fil med namnet copy.txt i samma katalog:

var original:File = File.documentsDirectory.resolvePath("AIR Test/test.txt"); 
var newFile:File = File.resolvePath("AIR Test/copy.txt"); 
original.copyTo(newFile, true); 

I det här exemplet ställs värdet på parametern overwrite för metoden copyTo() (den andra parametern) in på true. Genom att ställa in overwritetrue skrivs en befintlig målfil över. Den här parametern är valfri. Om du ställer in den på false (standardvärdet) skickar åtgärden en IOErrorEvent-händelse om målfilen finns (och filen kopieras inte).

”Async”-versionerna av metoderna copy och move fungerar asynkront. Använd metoden addEventListener() om du vill övervaka hur uppgiften genomförs eller felvillkoren, som i koden nedan:

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.");  
} 

Klassen File omfattar också metoderna File.moveToTrash() och File.moveToTrashAsync(), som flyttar en fil eller katalog till systemets papperskorg.

Ta bort en fil

Klassen File omfattar en deleteFile()-metod och en deleteFileAsync()-metod. Dessa metoder tar bort filer; den första fungerar synkront medan den andra fungerar asynkront (se Grunderna för AIR-filer).

Följande kod tar synkront bort filen test.txt i användarens dokumentkatalog:

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.deleteFile(); 

Följande kod tar asynkront bort filen test.txt i användarens dokumentkatalog:

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.addEventListener(Event.COMPLETE, completeHandler) 
file.deleteFileAsync(); 
 
function completeHandler(event:Event):void { 
    trace("Deleted.") 
} 

Metoderna moveToTrash() och moveToTrashAsync() ingår också, som du använder när du vill flytta en fil eller katalog till systemets papperskorg. Mer information finns i Flytta en fil till papperskorgen.

Flytta en fil till papperskorgen

Klassen File omfattar en moveToTrash()-metod och en moveToTrashAsync()-metod. Dessa metoder skickar en fil eller katalog till systemets papperskorg. Den första fungerar synkront medan den andra fungerar asynkront (se Grunderna för AIR-filer).

Följande kod flyttar filen test.txt i användarens dokumentkatalog synkront till systemets papperskorg:

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.moveToTrash(); 
Obs! På operativsystem som saknar stöd för en återställningsbar papperskorg tas filerna bort direkt.

Skapa en tillfällig fil

Klassen File omfattar en createTempFile()-metod, som skapar en fil i den tillfälliga katalogmappen för systemet, som i följande exempel:

var temp:File = File.createTempFile(); 

Metoden createTempFile() skapar automatiskt en unik tillfällig fil (så att du inte behöver fastställa en ny unik plats).

Du kan använda en tillfällig fil om du tillfälligt behöver lagra information som används i en programsession. Observera att det även finns en createTempDirectory()-metod för att skapa en unik tillfällig katalog i den tillfälliga systemkatalogen.

Du kanske vill ta bort den tillfälliga filen innan programmet avslutas, eftersom den inte tas bort automatiskt på alla enheter.