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('刪除文件出錯');