Werken met bestanden

Adobe AIR 1.0 of hoger

Met behulp van de AIR API voor het bestandssysteem kunt u basismogelijkheden voor de interactie tussen bestanden toevoegen aan uw toepassingen. U kunt bijvoorbeeld lezen van en schrijven naar bestanden, bestanden kopiëren en verwijderen enzovoort. Aangezien uw toepassingen toegang kunnen krijgen tot het lokale bestandssysteem, is het aan te raden Beveiliging in AIR te raadplegen als u dat nog niet hebt gedaan.

Opmerking: U kunt een bestandstype koppelen aan een AIR-toepassing (zodat de toepassing wordt geopend wanneer u dubbelklikt op het bestand). Zie Bestandskoppelingen beheren voor meer informatie.

Bestandsinformatie ophalen

De klasse File bevat de volgende eigenschappen die informatie verstrekken over een bestand dat of een map die wordt aangewezen door een File-object:

File-eigenschap

Beschrijving

creationDate

De aanmaakdatum van het bestand op de lokale schijf.

creator

Verouderd - gebruik de eigenschap extension . (Deze eigenschap rapporteert het Macintosh-creatortype van het bestand; dit wordt alleen gebruikt in Mac OS-versies voorafgaand aan Mac OS X.)

downloaded

(AIR 2 en hoger) Geeft aan of het referentiebestand of -map gedownload (van het internet) is of niet. Deze eigenschap heeft alleen betekenis bij besturingssystemen waarop bestanden kunnen worden gemarkeerd als gedownload:

  • Windows XP service pack 2 en later en op Windows Vista

  • Mac OS 10.5 en later

exists

Geeft aan of het bestand of de map waarnaar wordt verwezen, bestaat.

extension

De bestandsextensie, die bestaat uit het deel van de naam na (en niet inclusief) de laatste punt ("."). Als de bestandsnaam geen punt bevat, is de extensie null .

icon

Een Icon-object dat de pictogrammen bevat die zijn gedefinieerd voor het bestand.

isDirectory

Geeft aan of de File-objectverwijzing betrekking heeft op een map.

modificationDate

De datum waarop het bestand of de map op de lokale schijf voor het laatst is gewijzigd.

name

De naam van het bestand of de map (inclusief de eventuele bestandsextensie) op de lokale schijf.

nativePath

Het volledige pad in de representatie van het hostbesturingssysteem. Zie Paden van File-objecten .

parent

De map die de map of het bestand bevat dat wordt vertegenwoordigd door het File-object. Deze eigenschap is null als het File-object verwijst naar een bestand of map in de root van het bestandssysteem.

size

De grootte van het bestand op de lokale schijf (in bytes).

type

Verouderd - gebruik de eigenschap extension . (Op de Macintosh is deze eigenschap het bestandstype van vier tekens; dit wordt alleen gebruikt in Mac OS-versies voorafgaand aan Mac OS X.)

url

De URL voor het bestand of de map. Zie Paden van File-objecten .

Zie het onderwerp over de klasse File in de Naslaggids voor ActionScript 3.0 voor het Adobe Flash-platform voor meer informatie over deze eigenschappen.

Bestanden kopiëren en verplaatsen

De klasse File bevat twee methoden voor het kopiëren van bestanden of mappen: copyTo() en copyToAsync() . De klasse File bevat twee methoden voor het verplaatsen van bestanden of mappen: moveTo() en moveToAsync() . De methoden copyTo() en moveTo() werken synchroon, de methoden copyToAsync() en moveToAsync() asynchroon (zie Basisinformatie over AIR-bestanden ).

Als u een bestand wilt kopiëren of verplaatsen, stelt u twee File-objecten in. Een van deze objecten wijst het bestand aan dat u wilt kopiëren of verplaatsen. Dit is het object dat de kopieer- of verplaatsingsmethode oproept. Het andere object wijst het doelpad (resultaat) aan.

Met de volgende code kopieert u het bestand test.txt van de submap AIR Test van de documentenmap van de gebruiker naar het bestand copy.txt in dezelfde map:

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

In dit voorbeeld is de waarde van de parameter overwrite van de methode copyTo() (de tweede parameter) ingesteld op true . Door overwrite in te stellen op true , wordt een bestaand doelbestand overgeschreven. Deze parameter is optioneel. Als u de parameter instelt op false (de standaardwaarde), verzendt de bewerking de gebeurtenis IOErrorEvent als het doelbestand al bestaat. Het bestand wordt dan niet gekopieerd.

De “Async”-versies van de kopieer- en verplaatsingsmethoden werken asynchroon. Gebruik de methode addEventListener() om te controleren of de taak al is voltooid, en of er eventuele fouten zijn opgetreden, bijvoorbeeld met de volgende code:

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

De klasse File bevat ook de methoden File.moveToTrash() en File.moveToTrashAsync() , die een bestand of map naar de systeemprullenbak verplaatsen.

Bestanden verwijderen

De klasse File bevat de methoden deleteFile() en deleteFileAsync() . Deze methoden verwijderen bestanden, de eerste op synchrone wijze, de tweede op asynchrone wijze (zie Basisinformatie over AIR-bestanden ).

De volgende code verwijdert bijvoorbeeld synchroon het bestand test.txt uit de documentenmap van de gebruiker:

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

De volgende code verwijdert asynchroon het bestand test.txt uit de documentenmap van de gebruiker:

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

Ook beschikbaar zijn de methoden moveToTrash() en moveToTrashAsync() , die u kunt gebruiken om een bestand of map te verplaatsen naar de systeemprullenbak. Zie Bestanden verplaatsen naar de prullenbak voor meer informatie.

Bestanden verplaatsen naar de prullenbak

De klasse File bevat de methoden moveToTrash() en moveToTrashAsync() . Deze methoden sturen een bestand of map naar de systeemprullenbak, de eerste synchroon, de tweede asynchroon (zie Basisinformatie over AIR-bestanden ).

De volgende code verplaatst bijvoorbeeld synchroon het bestand test.txt uit de documentenmap van de gebruiker naar de systeemprullenbak:

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.moveToTrash(); 
Opmerking: Als een besturingssysteem geen ondersteuning biedt voor het concept van een prullenbak waarbij bestanden kunnen worden hersteld, worden de bestanden direct verwijderd.

Tijdelijke bestanden maken

De klasse File bevat de methode createTempFile() , die een bestand maakt in de Temp-map van het systeem, zoals in het volgende voorbeeld:

var temp:File = File.createTempFile(); 

De methode createTempFile() maakt automatisch een uniek tijdelijk bestand (zodat u niet zelf een nieuwe unieke locatie hoeft te bepalen).

U kunt een tijdelijk bestand gebruiken om tijdelijk informatie op te slaan die wordt gebruikt in een sessie van de toepassing. Er is ook de methode createTempDirectory() voor het maken van een unieke tijdelijke map in de Temp-map van het systeem.

U kunt desgewenst het tijdelijke bestand verwijderen voordat de toepassing wordt gesloten, aangezien dit bestand niet automatisch wordt verwijderd op alle apparaten.