Praca z plikami

Adobe AIR 1.0 i starsze wersje

Za pomocą interfejsu API plików AIR można dodawać do aplikacji proste operacje na plikach. Na przykład: możliwe jest odczytywanie i zapisywanie plików, usuwanie plików itp. Aplikacje mogą uzyskiwać dostęp do lokalnego systemu plików, dlatego należy zapoznać się z rozdziałem Zabezpieczenia w środowisku AIR .

Uwaga: Z aplikacją AIR można skojarzyć typ pliku (wówczas dwukrotne kliknięcie pliku powoduje otwarcie aplikacji). Szczegółowe informacje zawiera sekcja Zarządzanie skojarzeniami plików .

Uzyskiwanie informacji o pliku

Klasa File zawiera następujące właściwości, które udostępniają informacje o pliku lub katalogu, na który wskazuje obiekt File:

Właściwość File

Opis

creationDate

Data utworzenia pliku na dysku lokalnym.

creator

Przestarzała — należy używać właściwości extension . (Ta właściwość określa typ programu Macintosh, za pomocą którego utworzono plik file, jest używany wyłącznie w wersjach systemu Mac OS poprzedzających wersje Mac OS X).

downloaded

(Środowisko AIR 2 i nowsze) Wskazuje, czy plik lub katalog, do którego istnieje odwołanie, został pobrany (z Internetu), czy nie. Ta właściwość ma znaczenie tylko w systemach operacyjnych, w których pliki mogą być oznaczone jako pobrane:

  • Windows XP z dodatkiem Service Pack 2 lub późniejszym oraz w systemie Windows Vista

  • Mac OS 10.5 i późniejsze wersje

exists

Informuje o tym, czy istnieje plik lub katalog, do którego istnieje odwołanie.

extension

Rozszerzenie pliku, które jest częścią nazwy pliku po ostatniej kropce („.”) (bez tej kropki). Jeśli nazwa pliku nie zawiera kropki, rozszerzenie ma wartość null .

icon

Obiekt Icon zawierający ikony zdefiniowane dla pliku.

isDirectory

Informuje o tym, czy obiekt File odwołuje się do katalogu.

modificationDate

Data ostatniej modyfikacji pliku lub katalogu na dysku lokalnym.

name

Nazwa pliku lub katalogu (łącznie z rozszerzeniem, jeśli istnieje) na dysku lokalnym.

nativePath

Pełna ścieżka reprezentacji systemu operacyjnego hosta. Zobacz Ścieżki obiektów File .

parent

Folder, który zawiera folder lub plik reprezentowany przez obiekt File. Ta właściwość ma wartość null , jeśli obiekt File odwołuje się do pliku lub katalogu w katalogu głównym systemu plików.

size

Rozmiar pliku na dysku lokalnym (w bajtach).

type

Przestarzała — należy używać właściwości extension . (W systemie Macintosh ta właściwość określa czteroznakowy typ pliku, który jest używany tylko w wersjach systemu Mac OS poprzedzających wersję Mac OS X).

url

Adres URL pliku lub katalogu. Patrz Ścieżki obiektów File .

Szczegółowe informacje o tych właściwościach zawiera opis klasy File Skorowidzu języka ActionScript 3.0 dla platformy Adobe Flash .

Kopiowanie i przenoszenie plików

Klasa File zawiera dwie metody przeznaczone do kopiowania plików lub katalogów: copyTo() i copyToAsync() . Klasa File zawiera dwie metody do przenoszenia plików lub katalogów: moveTo() i moveToAsync() . Metody copyTo() i moveTo() działają synchronicznie, a metody copyToAsync() oraz moveToAsync() działają asynchronicznie (patrz Podstawowe informacje o plikach AIR ).

W celu skopiowania lub przeniesienia pliku należy skonfigurować dwa obiekty File. Jeden powinien wskazywać na plik przeznaczony do skopiowania lub przeniesienia — ten obiekt wywołuje metodę kopiowania lub przenoszenia; drugi powinien wskazywać na ścieżkę docelową (wynikową).

Poniższy kod kopiuje plik test.txt z podkatalogu AIR Test katalogu dokumentów użytkownika do pliku o nazwie copy.txt w tym samym katalogu:

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

W tym przykładzie parametr overwrite metody copyTo() (drugi parametr) ma wartość true . Ustawienie wartości overwrite na true powoduje, że istniejący plik docelowy zostaje zastąpiony. Ten parametr jest opcjonalny. Jeśli zostanie ustawiona wartość false (domyślna), wówczas operacja wywołuje zdarzenie IOErrorEvent, pod warunkiem że plik docelowy istnieje (plik nie jest kopiowany).

Wersje „Async” metod kopiowania i przenoszenia działają asynchronicznie. Metoda addEventListener() służy do monitorowania zakończenia zadania lub warunku powodującego błąd, jak w poniższym kodzie:

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

Klasa File zawiera również metody File.moveToTrash() i File.moveToTrashAsync() , które przenoszą plik lub katalog do kosza systemowego.

Usuwanie pliku

Klasa File zawiera metodę deleteFile() oraz metodę deleteFileAsync() . Te metody służą do usuwania plików — pierwsza z nich działa synchronicznie, a druga działa asynchronicznie (patrz Podstawowe informacje o plikach AIR ).

Przykład: poniższy kod synchronicznie usuwa plik test.txt z katalogu dokumentów użytkownika:

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

Przykład: poniższy kod asynchronicznie usuwa plik test.txt z katalogu dokumentów użytkownika:

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

Dostępne są również metody moveToTrash() i moveToTrashAsync , które mogą służyć do przenoszenia pliku lub katalogu do kosza systemu. Szczegółowe informacje zawiera sekcja Przenoszenie pliku do kosza .

Przenoszenie pliku do kosza

Klasa File zawiera metodę moveToTrash() oraz metodę moveToTrashAsync() . Te metody wysyłają plik lub katalog do kosza systemu — pierwsza z nich działa w sposób synchroniczny, a druga w sposób asynchroniczny (patrz Podstawowe informacje o plikach AIR ).

Przykład: poniższy kod synchronicznie przenosi plik test.txt z katalogu dokumentów użytkownika do kosza systemowego:

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.moveToTrash(); 
Uwaga: W systemach operacyjnych, które nie obsługują folderu kosza umożliwiającego przywracanie, następuje natychmiastowe usunięcie plików.

Tworzenie pliku tymczasowego

Klasa File zawiera metodę createTempFile() , która tworzy plik w folderze systemowego katalogu tymczasowego, jak w poniższym przykładzie:

var temp:File = File.createTempFile(); 

Metoda createTempFile() automatycznie tworzy unikalny plik tymczasowy (dzięki czemu użytkownik nie musi określać nowej unikalnej lokalizacji).

Ten tymczasowy plik może służyć do tymczasowego zapisu informacji używanych w sesji aplikacji. Istnieje również metoda createTempDirectory() przeznaczona do tworzenia unikalnego katalogu tymczasowego w katalogu tymczasowym systemu.

Przed zamknięciem aplikacji konieczne może być usunięcie pliku tymczasowego, ponieważ nie jest on usuwany automatycznie na niektórych urządzeniach.