cordova操作Android本地檔案系統
阿新 • • 發佈:2019-01-24
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('刪除檔案出錯');