Работа с файлами

Adobe AIR 1.0 и более поздних версий

С помощью API-интерфейса файла AIR вы сможете добавить в свое приложение основные интерактивные возможности. Например, будет возможно читать и записывать файлы, копировать и удалять их, и многое другое. Так как у ваших приложений есть доступ к локальной файловой системе, ознакомьтесь с разделом Безопасность AIR , если вы еще этого не сделали.

Примечание. Тип файла можно связывать с приложением AIR (чтобы при двойном щелчке по файлу он открывался в этом приложении). Дополнительные сведения см. в разделе Управление сопоставлением файлов .

Получение информации о файле

Класс File включает следующие свойства, содержащие информацию о файле или каталоге, на который указывает объект File:

Свойство File

Описание

creationDate

Дата создания файла на локальном диске.

creator

Сейчас не используется. Пользуйтесь свойством extension . (Это свойство выводит тип creator для файлов Macintosh и используется только в версиях Mac OS, предшествующих Mac OS X.)

downloaded

(AIR 2 и более поздних версий) Указывает, был ли файл или каталог, указанный в ссылке, загружен из Интернета. свойство имеет значение только для операционных систем, в которых файлы могут помечаться во время загрузки:

  • ОС Windows XP с пакетом обновления SP2 или более поздним и ОС Windows Vista

  • ОС Mac OS 10.5 и более поздних версий

exists

Определяет, существует ли файл или каталог, на который ведет ссылка.

extension

Расширение файла, являющееся частью его имени. Расширение следует за точкой («.») в имени файла (но не включает ее). Если в имени файла нет точки, то значение extension равно null .

icon

Объект Icon, содержащий значки, заданные для этого файла.

isDirectory

Указывает, ссылается ли объект File на каталог.

modificationDate

Дата последнего изменения файла или каталога на локальном диске.

name

Имя файла или каталога (включая расширение файла, если имеется) на локальном диске.

nativePath

Полный путь в представлении домашней операционной системы. См. раздел « Пути к объектам File ».

parent

Папка, содержащая папку или файл, представленный объектом File. Это свойство равно null , если объект File ссылается на файл или каталог на корневом уровне файловой системы.

size

Размер файла на локальном диске в байтах.

type

Сейчас не используется. Пользуйтесь свойством extension . (На компьютерах Macintosh это свойство представляет четырехсимвольный тип файла, используемый только в версиях Mac OS, предшествующих Mac OS X.)

url

URL-адрес файла или каталога. См. раздел « Пути к объектам File ».

Дополнительные сведения об этих свойствах см. в описании класса File в cправочнике ActionScript® 3.0 для платформы ® Flash® Platform .

Копирование и перемещение файлов

Класс File содержит два метода для копирования файлов и каталогов: copyTo() и copyToAsync() . Класс File содержит два метода для перемещения файлов и каталогов: moveTo() и moveToAsync() . Методы copyTo() и moveTo() являются синхронными, а методы copyToAsync() и moveToAsync() — асинхронными (см. раздел « Основные сведения о файлах AIR »).

Для копирования файла необходимо создать два объекта File. Один из них указывает на файл, который следует скопировать или переместить, и вызывает соответствующий метод, а второй указывает целевой путь (путь назначения).

В примере ниже файл test.txt копируется из подкаталога AIR Test каталога документов пользователя в файл copy.txt в том же каталоге:

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

В этом примере значение параметра overwrite метода copyTo() (второго параметра) равно true . При задании для overwrite значения true существующий целевой файл перезаписывается. Этот параметр не обязателен. При значении false (значение по умолчанию) операция отправляет событие IOErrorEvent, если целевой файл существует (при этом файл не копируется).

Варианты методов копирования и перемещения, имеющие в названии элемент «Async», работают асинхронно. Метод addEventListener() позволяет отслеживать выполнение задачи или условия ошибки, как показано ниже:

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

Класс File также включает методы File.moveToTrash() и File.moveToTrashAsync() , служащие для перемещения файла или каталога в корзину.

Удаление файла

Класс File содержит методы deleteFile() и deleteFileAsync() . Эти методы служат для удаления файлов. Первый работает синхронно, второй — асинхронно (см. раздел « Основные сведения о файлах AIR »).

Например, в приведенном ниже коде файл test.txt синхронно удаляется из каталога документов пользователя:

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

В этом коде файл test.txt асинхронно удаляется из каталога документов пользователя:

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

Также существуют методы moveToTrash() и moveToTrashAsync , с помощью которых файл или каталог можно переместить в корзину. Дополнительные сведения см. в разделе « Перемещение файла в корзину ».

Перемещение файла в корзину

Класс File содержит методы moveToTrash() и moveToTrashAsync() . Эти методы отправляют файл или каталог в корзину. Первый из них работает синхронно, а второй — асинхронно (см. раздел « Основные сведения о файлах AIR »).

Например, в следующем коде файл test.txt синхронно перемещается из каталога документов пользователя в корзину:

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.moveToTrash(); 
Примечание. В операционных системах, которые не поддерживают концепцию восстанавливаемой папки корзины, файлы сразу же удаляются.

Создание временного файла

Класс File включает метод createTempFile() , который создает во временном системном каталоге еще один файл, как показано ниже:

var temp:File = File.createTempFile(); 

Метод createTempFile() автоматически создает уникальный временный файл, что избавляет вас от необходимости каждый раз задавать уникальное расположение.

Временный файл может использоваться для временного хранения данных, используемых в ходе одного сеанса приложения. Обратите внимание, что существует метод createTempDirectory() , позволяющий создавать новые уникальные временные каталоги во временном каталоге System.

Перед закрытием приложения рекомендуется удалять временные файлы, так как они не удаляются автоматически на всех устройствах.