File

El plugin "File" de Cordova es simplemente una implementación de la API del sistema de ficheros de HTML5. No es algo en lo que se vaya a entrar en profundidad, ya que en el ámbito de Apache Cordova, sólo es interesante en lo referente al manejo eventual de esta característica por parte de otros plugins, como puede ser el caso de Media o FileTransfer.

En este enlace se puede encontrar una extensa documentación (en varios idiomas, incluido el español) sobre el manejo de esta API para HTML5

Para instalar el plugin File en un nuevo proyecto de Cordova, hay que situarse en el directorio del mismo, y una vez instalada la plataforma correspondiente (Android en nuestro caso), se escribe:

cordova plugin add org.apache.cordova.file

Es habitual que File se descargue automáticamente junto con otro plugin que requiera de alguna de sus características, como es el caso de Media. Por lo que no es habitual que se deba de recurrir a instalarlo manualmente.

Plataformas soportadas

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • iOS
  • Windows Phone 7 and 8*
  • Windows 8*
  • Firefox OS

Lista de códigos de error y significado

  • 1 = NOT_FOUND_ERR
  • 2 = SECURITY_ERR
  • 3 = ABORT_ERR
  • 4 = NOT_READABLE_ERR
  • 5 = ENCODING_ERR
  • 6 = NO_MODIFICATION_ALLOWED_ERR
  • 7 = INVALID_STATE_ERR
  • 8 = SYNTAX_ERR
  • 9 = INVALID_MODIFICATION_ERR
  • 10 = QUOTA_EXCEEDED_ERR
  • 11 = TYPE_MISMATCH_ERR
  • 12 = PATH_EXISTS_ERR

Con respecto al almacenamiento persistente de ficheros en Android, hay que tener en cuenta algunas consideraciones. Desde versiones anteriores de este plugin, existe la posibilidad de que el plugin detecte automáticamente la existencia de una tarjeta SD. Dependiendo de esto, los ficheros con los que trabaje la aplicación se almacenan en la tarjeta o bien en la memoria interna del dispositivo.

En la nueva versión podemos escoger entre esta opción o simplemente elegir almacenar los ficheros en la memoria interna. Esto podemos hacerlo editando directamente el fichero config.xml, escogiendo entre uno de estos dos parámetros:

<preference name="AndroidPersistentFileLocation" value="Internal"/>
<preference name="AndroidPersistentFileLocation" value="Compatibility"/>

También podemos configurarlo con una serie de parámetros opcionales:

<preference name="AndroidExtraFilesystems" value="

files,files-external,documents,sdcard,cache,cache-external,root"/>
  • files: Directorio interno de almacenamiento de ficheros de la aplicación
  • files-external: Directorio externo de almacenamiento de ficheros de la aplicación
  • sdcard: Directorio global de almacenamiento (por defecto la raíz de la tarjeta SD si está habilitado). Requiere el permiso android.permission.WRITE_EXTERNAL_STORAGE
  • cache: Directorio de caché interno de la aplicación
  • cache-external: Directorio de caché externo de la aplicación
  • root: Raíz del sistema de ficheros