首先,有时间的小伙伴可以参考官网:Cordova-Plugin-File—npm
官网的介绍很细,但是对于具体怎么用如何用没有详细的说明和样例参考
document.addEventListener("deviceready", function(){
// 此处写需要做的文件操作
},false)
通过样例来了解各参数
window.resolveLocalFileSystemURL(cordova.file.dataDirectory,function(root){
root.getDirectory('my_folder', {create: true}, function(dirEntry) {
alert('您创建了:' + dirEntry.name + ' 文件夹。');
}, function(err){
console.log('创建文件夹出错');
});
},function(err){});
– window.resolveLocalFileSystemURL为操作方法,此方法是定义在window全局环境中可以直接调用
– 方法的4个参数分别为:
–cordova.file.applicationDirectory - 安装应用程序的只读目录。(iOS,Android,BlackBerry 10,OSX,windows)
– cordova.file.applicationStorageDirectory - 应用程序沙箱的根目录; 在iOS和Windows上,这个位置是只读的(但是特定的子目录[如 /Documents在iOS或/localStateWindows上]是可读写的)。其中包含的所有数据都是应用程序专用的。(iOS,Android,BlackBerry 10,OSX)
– cordova.file.dataDirectory- 使用内部存储器在应用程序的沙箱中进行持久和私有数据存储(在Android上,如果需要使用外部存储器,请使用.externalDataDirectory)。在iOS上,此目录未与iCloud同步(使用.syncedDataDirectory)。(iOS,Android,BlackBerry 10,windows)
–cordova.file.externalRootDirectory - 外部存储(SD卡)根。(Android,BlackBerry 10)
– 创建文件夹
root.getDirectory('newFile', {create: true}, function(dirEntry) {
alert('您创建了:' + dirEntry.name + ' 文件夹。');
}, function(err){
console.log('创建文件夹出错');
});
– 创建文件(此处create参数为如果目标文件夹是否存在该文件,true为不存在则创建,false为不创建)
root.getFile('test.png', {create:true}, function(fileEntry) {
//成功回调
},function(err){
//失败回调
});
– 删除文件
root.getFile('test.png',{create:false},function(fs){
fs.remove(function() {
console.log('删除成功');
},function(err){
console.log('删除失败')
});
},function(err){console.log('发生错误');});
这里涉及到的remove、getfile等方法在官网上可查,比较多,所以能实现的功能也比较多
我这边是闯进一个新文件,然后把blob文件对象写入创建的新文件来实现保存图片,供大家参考:
– 参数3:成功回调函数,可以执行各种文件详细操作
–参数4:失败回调函数
window.resolveLocalFileSystemURL(cordova.file.dataDirectory,function(root){
// 先查找这个文件,如果没有则创建
root.getFile('share.jpeg', { create: true }, function (fileEntry) {
// 开始写入文件
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function () {
console.log('写入文件成功');
// 将fileEntry打印出来可以得到一个包含操作信息的对象
_this.resultUrl=fileEntry.nativeURL
// 下一行不用管,是个人项目中的调用函数
_this.bridgeShare(_this.resultUrl)
},
// 失败回调
fileWriter.onerror = function (err) {
console.error('写入文件失败:' + err.toString());
}
// 以上创建新文件后,开始向文件中写入blob文件对象
fileWriter.write(_this.blobData);
});
}, function(err){console.log('出错');});
},function(err){});