$cordovaFile cordova文件操作插件,访问该设备的文件和目录的插件。每个操作系统有一个不一样的文件系统布局
$cordovaFile
cordova文件操作插件,访问该设备的文件和目录的插件。每个操作系统有一个不一样的文件系统布局
cordova plugin add cordova-plugin-file
文件系统布局
每个操作系统有一个不一样的文件系统布局,这里是一个详细的描述,iOS和Android的文件系统
ios文件系统布局
设备路径 | cordova.file.* | iosExtraFileSystems | r/w?(读/写) | persistent?(持久性) | OS clears | sync(同步) | private(私有) |
---|---|---|---|---|---|---|---|
/var/mobile/Applications/UUID/ | applicationStorageDirectory | - | r | N/A | N/A | N/A | Yes |
appname.app/ | applicationDirectory | bundle | r | N/A | N/A | N/A | Yes |
www/ | - | - | r | N/A | N/A | N/A | Yes |
Documents/ | documentsDirectory | documents | r | N/A | No | N/A | Yes |
NoCloud/ | - | documents-nosync | r/w | Yes | No | No | Yes |
Library/ | - | library | r/w | Yes | No | Yes | Yes |
NoCloud/ | dataDirectory | library-nosync | r/w | Yes | No | No | Yes |
Cloud/ | syncedDataDirectory | - | r/w | Yes | No | Yes | Yes |
Caches/ | cacheDirectory | cache | r/w | Yes | No | No | Yes |
tmp/ | tempDirectory | - | r/w | No | No | Yes | Yes |
android文件系统布局
设备路径 | cordova.file.* | AndroidExtraFileSystems | r/w?(读/写) | persistent?(持久性) | OS clears | private(私有) |
---|---|---|---|---|---|---|
file:///android_asset/ | applicationDirectory | r | N/A | N/A | Yes | |
/data/data/app-id/ | applicationStorageDirectory | - | r/w | N/A | N/A | Yes |
cache | cacheDirectory | cache | r/w | Yes | Yes* | Yes |
files | dataDirectory | files | r/w | Yes | No | Yes |
Documents | documents | r/w | Yes | No | Yes | |
sdcard/ | externalRootDirectory | sdcard | r/w | Yes | No | No |
Android/data/app-id/ | externalApplicationStorageDirectory | - | r/w | Yes | No | No |
cache | externalCacheDirectory | cache-external | r/w | Yes | No** | No |
files | externalDataDirectory | files-external | r/w | Yes | No** | No |
提示
如果外部存储不能安装,cordova.file.external*属性为空。
文件错误代码 (File Error Codes)
当抛出错误时,将使用下列代码之一。
代码(Codes) | 常量 |
---|---|
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 |
方法(Methods)
getFreeDiskSpace()
获取设备磁盘总空闲空间
参数 | 类型 | 默认直 | 说明 |
---|
返回值 String
checkDir(path, directory)
检测某路径的文件目录是否存在
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
directory | String | 检查的目录名称 |
返回值 Object
checkFile(path, file)
检测某路径中的文件是否存在
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
file | String | 检查的文件路径 |
返回值 Object
createDir(path, directory, replace)
在特定路径中创建一个新目录。replace boolean参数确定是否以相同的名称替换已存在的目录。如果存在目录存在且替换值为false,则承诺将失败并返回一个错误。
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
directory | String | 创建目录名称 |
replace | Boolean | 如果为true替换目录,如果为false有相同名称的文件时,返回一个错误 |
返回值 Object
createFile(path, file, replace)
在特定路径中创建一个新文件。replace boolean 参数确定是否以相同的名称替换已存在的文件。如果存在的文件存在且替换值是错误的,则该承诺将失败并返回一个错误。
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
file | String | 创建文件名称 |
replace | Boolean | 如果为true替换目录,如果为false有相同名称的文件时,返回一个错误 |
返回值 Object
removeFile(path, file)
从所需的位置删除一个文件。
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
file | String | 删除文件名称 |
返回值 Object
removeDir(path, directory)
从所需的位置删除一个目录。
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
file | String | 删除目录名称 |
返回值 Object
removeRecursively(path, directory)
从所需的位置删除所有文件和目录。
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
directory | String | 删除目录名称 |
返回值 Object
writeFile(path, file, data, replace)
写入一个新文件,如果需要的话,可以替换。
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
file | String | 写入文件名称 |
data | String | Text/data 写入文件的数据 |
replace | String | 如果为true替换文件,如果为false有相同名称的文件时,返回一个错误 |
返回值 Object
writeExistingFile(path, file, data)
写入一个存在的文件。
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
file | String | 写入文件名称 |
data | String | Text/data 写入文件的数据 |
返回值 Object
readAsText(path, file)
readAsDataURL(path, file)
readAsBinaryString(path, file)
readAsArrayBuffer(path, file)
在各种方法中读取文件。
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
file | String | 读取文件名称 |
返回值 Object
moveDir(path, directory, newPath, newDirectory)
移动一个目录
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
directory | String | 移动目录名称 |
newPath | String | 新位置的基文件系统请参考以上的iOS和Android的文件系统 |
newDirectory | String | 新目录名称 |
返回值 Object
moveFile(path, file, newPath, newFile)
移动一个文件
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
file | String | 移动文件名称 |
newPath | String | 新位置的基文件系统请参考以上的iOS和Android的文件系统 |
newFile | String | 新文件名称 |
返回值 Object
copyDir(path, directory, newPath, newDirectory)
复制一个目录
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
directory | String | 复制目录名称 |
newPath | String | 新位置的基文件系统请参考以上的iOS和Android的文件系统 |
newDirectory | String | 新目录名称 |
返回值 Object
copyFile(path, file, newPath, newFile)
复制一个文件
参数 | 类型 | 说明 |
---|---|---|
path | FileSystem | 基本文件系统。请参考以上的iOS和Android的文件系统 |
file | String | 复制文件名称 |
newPath | String | 新位置的基文件系统请参考以上的iOS和Android的文件系统 |
newFile | String | 新文件名称 |
返回值 Object
代码实例
module.controller('MyCtrl', function($scope, $cordovaFile) {
document.addEventListener('deviceready', function () {
$cordovaFile.getFreeDiskSpace()
.then(function (success) {
// success in kilobytes
}, function (error) {
// error
});
// CHECK
$cordovaFile.checkDir(cordova.file.dataDirectory, "dir/other_dir")
.then(function (success) {
// success
}, function (error) {
// error
});
$cordovaFile.checkFile(cordova.file.dataDirectory, "some_file.txt")
.then(function (success) {
// success
}, function (error) {
// error
});
// CREATE
$cordovaFile.createDir(cordova.file.dataDirectory, "new_dir", false)
.then(function (success) {
// success
}, function (error) {
// error
});
$cordovaFile.createFile(cordova.file.dataDirectory, "new_file.txt", true)
.then(function (success) {
// success
}, function (error) {
// error
});
// REMOVE
$cordovaFile.removeDir(cordova.file.dataDirectory, "some_dir")
.then(function (success) {
// success
}, function (error) {
// error
});
$cordovaFile.removeFile(cordova.file.dataDirectory, "some_file.txt")
.then(function (success) {
// success
}, function (error) {
// error
});
$cordovaFile.removeRecursively(cordova.file.dataDirectory, "")
.then(function (success) {
// success
}, function (error) {
// error
});
// WRITE
$cordovaFile.writeFile(cordova.file.dataDirectory, "file.txt", "text", true)
.then(function (success) {
// success
}, function (error) {
// error
});
$cordovaFile.writeExistingFile(cordova.file.dataDirectory, "file.txt", "text")
.then(function (success) {
// success
}, function (error) {
// error
});
// READ
$cordovaFile.readAsText(cordova.file.dataDirectory, $scope.inputs.readFile)
.then(function (success) {
// success
}, function (error) {
// error
});
// MOVE
$cordovaFile.moveDir(cordova.file.dataDirectory, "dir", cordova.file.tempDirectory, "new_dir")
.then(function (success) {
// success
}, function (error) {
// error
});
$cordovaFile.moveFile(cordova.file.dataDirectory, "file.txt", cordova.file.tempDirectory)
.then(function (success) {
// success
}, function (error) {
// error
});
// COPY
$cordovaFile.copyDir(cordova.file.dataDirectory, "dir", cordova.file.tempDirectory, "new_dir")
.then(function (success) {
// success
}, function (error) {
// error
});
$cordovaFile.copyFile(cordova.file.dataDirectory, "file.txt", cordova.file.tempDirectory, "new_file.txt")
.then(function (success) {
// success
}, function (error) {
// error
});
});
});