Es una de las APIs más funcionales en AIR
Es posible crear archivos y directorios, abrir y leer archivos, escribir archivos, listar el contenido de un directorio, acceder a directorios, comunes entre S.O., inspeccionar propiedades de un archivo, son todas clases del paquete flash.filesystem
Las tres clases que manejan toda esta API son File, FileMode, FileStream para leer/escribir archivos. Cuando queremos trabajar con archivos el primer paso es referenciarlo, se pueden identificar dos formas de hacerlos, la primera es instanciando un objeto y definir la propiedad nativePathvar
archivo = new air.File();
JSvar archivo : file = new File();
ASArchive.nativePath = “C:/Documents and Settings…”;
Si bien esta alternativa es totalmente valida la forma más usual es a través de un directorio especialvar archivo File;
archivo = File.documentsDirectory.resolve(“foto.jpg”);
var archivo;
archivo = air.file.documentsDirectory.resolve(“…”);
Los directorios especiales pueden usar el método resolve para obtener un path hijo o usar el mismo objeto como File, tenemos los siguientes directorios especiales:
applicationStorageDirectory: Donde podemos almacenar archivos propios de nuestra aplicación applicationResourceDirectory: La carpeta donde están nuestros archivos de instalación
desktopDirectory: “Escritorio del usuario”
documentsDirectory: “Mis Documentos”
userDirectory: Generalmente en un nivel superior a Mis Documentos Las operaciones sobre los archivos pueden ser sincronicas o asincrónicas, en el caso de asincrónicas, debemos escuchar el evento “complete” o Event.COMPLETE
Los métodos existentes son:
File.copyTo() File.copyToAsync()
File.deleteDirectory() File.deleteDirectoryAsync()
File.deleteFile() File.deleteFileAsync()
File.listDirectory() File.listDirectoryAsync()
File.moveTo() FilemoveToAsync()
File.moveToTrash() File.moveToTrashAsync()
FileStream.open() FileStream.openAsync()
Un detalle de las propiedades de los archivos:
- exists
- icon
- isDirectory
- isHidden
- isPackage
- isSymbolicLink
- nativePath
- parent
- url
- creationDate
- extension
- modificationDate
- name
- size
- type
Para abrir y leer un archivo, debemos obtener una referencia al objeto File y luego crear un FileStreamvar flujo:
FileStream = new FileStream();
flujo.open(archive, modo);
Los modos posibles son: FileMode.READ, FileMode.WRITE, FileMode.APPEND, FileMode.UPDATE.
También tenemos métodos para escribir distintos tipos de datos writeBoolean, writeInt, WriteUTF y para leer en el mismo orden, creamos archivos binarios.
El trabajo con directorios es igual que con los archivos, hay que referenciarlos y también es posible crear directorios temporales y borrarlos.