File
An API to read, write and navigate file system hierarchies, based on the w3c file api.
Objects
- DirectoryEntry
- DirectoryReader
- File
- FileEntry
- FileError
- FileReader
- FileSystem
- FileTransfer
- FileTransferError
- FileUploadOptions
- FileUploadResult
- FileWriter
- Flags
- LocalFileSystem
- Metadata
Accessing the Feature
As of version 3.0, Cordova implements device-level APIs as plugins.
Use the CLI's plugin
command, described in The Command-Line
Interface, to add or remove this feature for a project:
$ cordova plugin add org.apache.cordova.file
$ cordova plugin ls
[ 'org.apache.cordova.file' ]
$ cordova plugin rm org.apache.cordova.file
You must add the file-transfer
plugin separately. The CLI
automatically adds the file
plugin as a dependency, so there is no
need to add it separately:
$ cordova plugin add org.apache.cordova.file-transfer
$ cordova plugin ls
[ 'org.apache.cordova.file',
'org.apache.cordova.file-transfer' ]
$ cordova plugin rm org.apache.cordova.file-transfer
These commands apply to all targeted platforms, but modify the platform-specific configuration settings described below:
-
Amazon Fire OS
(after adding just the file plugin) (in app/res/xml/config.xml) <feature name="File"> <param name="android-package" value="org.apache.cordova.file.FileUtils" /> </feature> (in app/AndroidManifest.xml) <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> (after adding just the file-transfer plugin) (in app/res/xml/config.xml) <feature name="FileTransfer"> <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" /> </feature> (in app/AndroidManifest.xml) <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
Android
(after adding just the file plugin) (in app/res/xml/config.xml) <feature name="File"> <param name="android-package" value="org.apache.cordova.file.FileUtils" /> </feature> (in app/AndroidManifest.xml) <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> (after adding just the file-transfer plugin) (in app/res/xml/config.xml) <feature name="FileTransfer"> <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" /> </feature> (in app/AndroidManifest.xml) <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
BlackBerry WebWorks
(in www/plugins.xml) <feature name="File"> <param name="blackberry-package" value="org.apache.cordova.file.FileManager" /> </feature> <feature name="FileTransfer"> <param name="blackberry-package" value="org.apache.cordova.http.FileTransfer" /> </feature> (in www/config.xml) <feature id="blackberry.io.file" required="true" version="1.0.0.0" /> <feature id="blackberry.utils" required="true" version="1.0.0.0" /> <feature id="blackberry.io.dir" required="true" version="1.0.0.0" /> <rim:permissions> <rim:permit>access_shared</rim:permit> </rim:permissions>
-
iOS (in the named application directory's
config.xml
)<feature name="File"> <param name="ios-package" value="CDVFile" /> </feature> <feature name="FileTransfer"> <param name="ios-package" value="CDVFileTransfer" /> </feature>
Some platforms may support this feature without requiring any special configuration. See Platform Support for an overview.