Trabalho com arquivos

Adobe AIR 1.0 e posterior

Usando a API de arquivo AIR, você pode adicionar recursos básicos de interação de arquivo a seus aplicativos. Por exemplo, você pode ler e gravar arquivos, copiar e excluir arquivos e assim por diante. Como seus aplicativos podem acessar o sistema de arquivos local, consulte Segurança do AIR , se ainda não tiver feito isso.

Nota: Você pode associar um tipo de arquivo a um aplicativo do AIR (de modo que, quando você clicar nele duas vezes, o aplicativo seja aberto). Para obter detalhes, consulte Gerenciamento de associações de arquivos .

Obtenção de informações de arquivos

A classe File inclui as seguintes propriedades que oferecem informações sobre um arquivo ou diretório para o qual o objeto File aponta:

Propriedade File

Descrição

creationDate

A data de criação do arquivo no disco local.

creator

Obsoleto — usa a propriedade extension . (Essa propriedade relata o tipo de criador Macintosh do arquivo, usado somente nas versões do Mac OS anteriores ao Mac OS X).

downloaded

(No Air 2 e posteriores) Indica se o arquivo ou o diretório mencionados foram baixados (da Internet) ou não. Esta propriedade só é significativa em sistemas operacionais em que os arquivos podem ser marcados como baixados:

  • Windows XP Service Pack 2 e versões posteriores e no Windows Vista

  • SO Mac 10.5 e posterior

exists

Se o arquivo ou diretório referenciado existir.

extension

A extensão de arquivo, que é a parte seguinte ao nome (e não incluindo) o ponto final ("."). Se não houver ponto no nome do arquivo, a extensão será null .

ícone

Um objeto Icon que contém os ícones definidos para o arquivo.

isDirectory

Se a referência do objeto File for a um diretório.

modificationDate

A data da última modificação do arquivo ou diretório no disco local.

nome

O nome do arquivo ou diretório (incluindo a extensão de arquivo, se houver) no disco local.

nativePath

O caminho completo na representação do sistema operacional de hospedagem. Consulte Caminhos de objetos File .

parent

A pasta que contém a pasta ou o arquivo representado pelo objeto File. Essa propriedade será null se o objeto File fizer referência a um arquivo ou diretório na raiz do sistema de arquivos.

size

O tamanho do arquivo no disco local, em bytes.

tipo

Obsoleto — usa a propriedade extension . (No Macintosh, essa propriedade é o tipo de arquivo com quatro caracteres, usado somente nas versões do Mac OS anteriores ao Mac OS X).

url

A URL do arquivo ou diretório. Consulte Caminhos de objetos File .

Para obter detalhes dessas propriedades, consulte a entrada da classe File na Referência do ActionScript® 3.0 para Adobe® Flash® Platform .

Cópia e movimentação de arquivos

A classe File inclui dois métodos de cópia de arquivos ou diretórios: copyTo() e copyToAsync() . A classe File inclui dois métodos para mover arquivos ou diretórios: moveTo() e moveToAsync() . Os métodos copyTo() e moveTo() funcionam de modo síncrono e os métodos copyToAsync() e moveToAsync() funcionam de modo assíncrono (consulte Noções básicas do arquivo AIR ).

Para copiar ou mover um arquivo, defina dois objetos File. Um aponta para o arquivo que deve ser copiado ou movido, e é o objeto que chama o método de cópia ou movimentação; o outro aponta para o caminho de destino (resultado).

O seguinte copia o arquivo test.txt do subdiretório AIR Test do diretório de documentos do usuário em um arquivo com nome copy.txt no mesmo diretório:

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

Nesse exemplo, o valor do parâmetro overwrite do método copyTo() (o segundo parâmetro) é definido como true . Definindo overwrite como true , o arquivo de destino existente é sobrescrito. Esse parâmetro é opcional. Se você defini-lo como false (o valor padrão), a operação despacha um evento IOErrorEvent se o arquivo de destino existir (e o arquivo não é copiado).

As versões “Async” dos métodos de cópia e movimentação funcionam de modo assíncrono. Use o método addEventListener() para monitorar a conclusão da tarefa ou as condições de erro, como no código a seguir:

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

A classe File também inclui os métodos File.moveToTrash() e File.moveToTrashAsync() , que movem o arquivo ou diretório para a lixeira do sistema.

Exclusão de arquivo

A classe File inclui os métodos deleteFile() e deleteFileAsync() . Esses métodos excluem arquivos; o primeiro trabalha de forma síncrona, o segundo trabalha de forma assíncrona (consulte Noções básicas do arquivo AIR ).

Por exemplo, o código a seguir exclui de modo síncrono o arquivo test.txt do diretório de documentos do usuário:

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

O código a seguir exclui de modo assíncrono o arquivo test.txt do diretório de documentos do usuário:

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

Também estão incluídos os métodos moveToTrash() e moveToTrashAsync() , que você pode usar para mover um arquivo ou diretório para a lixeira do Sistema. Para obter detalhes, consulte Movimentação de arquivo para a lixeira .

Movimentação de arquivo para a lixeira

A classe File inclui os métodos moveToTrash() e moveToTrashAsync() . Esses métodos enviam um arquivo ou diretório para a lixeira do Sistema; o primeiro trabalha de forma síncrona, o segundo trabalha de forma assíncrona (consulte Noções básicas do arquivo AIR ).

Por exemplo, o código a seguir move de modo síncrono o arquivo test.txt no diretório de documentos do usuários para a lixeira do Sistema:

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.moveToTrash(); 
Nota: Em sistemas operacionais que não oferecem suporte ao conceito de uma pasta de lixeira recuperável, os arquivos são removidos imediatamente.

Criação de arquivo temporário

A classe File inclui o método createTempFile() , que cria um arquivo na pasta de diretórios temporários do Sistema, como no exemplo a seguir:

var temp:File = File.createTempFile(); 

O método createTempFile() cria automaticamente um arquivo temporário exclusivo (poupando o seu trabalho de determinar um novo local exclusivo).

Você pode usar um arquivo temporário para armazenar temporariamente informações usadas em uma sessão do aplicativo. Observe que também há o método createTempDirectory() para criar um diretório temporário exclusivo no diretório temporário System.

Pode ser conveniente excluir o arquivo temporário antes de fechar o aplicativo, uma vez que ele não é excluído automaticamente em todos os dispositivos.