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.