blob: 2860bf4df8cda724c219e79ae57b8bbc3c5c650c [file] [log] [blame] [view]
org.apache.cordova.file-extras plugin
=====================================
This plugin grants a Cordova application access to several additional filesystem roots, and provides a cross-platform means of accessing these filesystems based on their intended purpose.
The set of available filesystems depends on the platform.
Android
-------
- files: The application's internal file storage directory
- files-external: The application's external file storage directory
- sdcard: The global external file storage directory (this is the root of the SD card, if one is installed)
- cache: The application's internal cache directory
- cache-external: The application's external cache directory
- root: The entire device filesystem
Android also supports a special filesystem named "documents", which represents a "/Documents/" subdirectory within the "files" filesystem.
iOS
---
- library: The application's Library directory
- documents: The application's Documents directory
- cache: The application's Cache directory
- app-bundle: The application's bundle; the location of the app itself on disk
- root: The entire device filesystem
By default, the library and documents directories can be synced to iCloud. You can also request two additional filesystems, "library-nosync" and "documents-nosync", which represent a special non-synced directory within the Library or Documents filesystem.
Configuring the plugin
----------------------
The set of available filesystems can be configured at build time per-platform. Both iOS and Android recognize a <preference> tag in `config.xml` which names the filesystems to be installed. The defaults for these preferences, if not set, are
<preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle" />
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external" />
These defaults contain all available filesystems except for "root".
Accessing the filesystems
-------------------------
The simplest method of using these new filesystems is to call `cordova.plugins.fileextras.getFilesystem` with the name of the filesystem you want to use.
cordova.plugins.fileextras.getFilesystemRoot(filesystemName, successCallback, errorCallback);
If successful, `successCallback` will be called with a `DirectoryEntry` object representing the root of the filesystem. Otherwise, `errorCallback` will be called with a `FileError`.
It is also possible to request a `DirectoryEntry` object for a particular purpose. This provides a cross-platform way of accessing the various filesystem locations.
cordova.plugins.fileextras.getDirectoryForPurpose(purpose, options, successCallback, failureCallback)
will call successCallback with a `DirectoryEntry` object suitable for the specified purpose.
The following string constants are defined for the `purpose` field:
data
documents
cache
temp (returns the TEMPORARY filesystem)
app-bundle (iOS only)
The `options` field is an object. On iOS, it is possible to set it to `{syncable: false}` to obtain the non-synced versions of `data` or `documents`. On Android, you can set `{sandboxed: false}` to get the external (not confined to your app) versions of `data`, `documents` or `cache`.