1. 程式人生 > >cordova操作Android本地檔案系統

cordova操作Android本地檔案系統

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