cordova提供了file插件,这个插件可以访问手机上大部分文件和文件夹,当然,首先肯定是需要安装cordova以及安装它的插件”cordova-plugin-file”了,具体如何安装请读者自行查看官网,笔者就不再赘述
1. cordova 创建本地文件
在访问android本地系统文件的时候,我们需要使用到一个方法
window.resolveLocalFileSystemURL();
以及一些常量
举例:cordova.file.externalRootDirectory
具体可以看以下图片示例
如下是完整的创建文件代码:
window.resolveLocalFileSystemURL('cordova.file.externalRootDirectory', function (root) {
root.getFile('demo.txt', {create: true}, function (fileEntry) {
var dataObj = new Blob(['欢迎访问hangge.com'], {type: 'text/plain'});
//写入文件
writeFile(fileEntry, dataObj);
}, function (err) {
console.log('创建失败!');
});
}, function (err) {
});
//将内容数据写入到文件中
function writeFile(fileEntry, dataObj) {
//创建一个写入对象
fileEntry.createWriter(function (fileWriter) {
//文件写入成功
fileWriter.onwriteend = function () {
console.log("Successful file read...");
};
//文件写入失败
fileWriter.onerror = function (e) {
console.log("Failed file read: " + e.toString());
};
//写入文件
fileWriter.write(dataObj);
});
}
“cordova.file.externalRootDirectory”是cordova的预定义常量,表示的是SD卡根目录,这里我们需要做的,就是在SD卡的根目录,创建一个demo.txt文件。
root.getFile(fileName,{create:false},callback)
这个api是用来创建或者读取文件的。
第一个参数是文件的名字,第二个参数create,如果它为true,则当文件不存在时就创建文件,如果存在则可以使用reader方法直接读取。
2. cordova读取本地文件
cordova读取本地文件,我们只需要根据以上的步骤拿到FileEntry,在通过fileEntry.file();
获取到file实例,最后使用FileReader
对象获取文件中的内容,就可以对内容进行处理了。
具体的代码如下:
function FileReader(fileEntry) {
fileEntry.file(function (file) {
var reader = new FileReader();
reader.onloadend = function (e) {
alert(this.result);
};
reader.readAsText(file);
}, function (err) {
console.log('读取出错');
});
}
3. cordova 删除本地文件
要删除本地文件,我们需要拿到文件的父文件夹,然后在获取FileEntry,最后通过FileEntry的remove方法删除文件,具体代码如下:
fileEntry.remove(function() {
console.log('删除成功');
},function(err){
console.log('删除失败')
});
},function(err){console.log('删除文件出错');