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('刪除文件出錯');
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章