Praca z plikamiAdobe AIR 1.0 i wersje późniejsze 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 plikuKlasa File zawiera następujące właściwości, które udostępniają informacje o pliku lub katalogu, na który wskazuje obiekt 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ówKlasa 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 plikuKlasa 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 koszaKlasa 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 tymczasowegoKlasa 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. |
|