C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-file
在這個例子中,我們將向你展示如何建立檔案,寫入,讀取,並刪除檔案。出於這個原因,我們將在 index.html 檔案中建立四個按鈕。我們還將新增文字區域,用來展示檔案的內容。
<button id = "createFile">CREATE FILE</button> <button id = "writeFile">WRITE FILE</button> <button id = "readFile">READ FILE</button> <button id = "removeFile">DELETE FILE</button> <textarea id = "textarea"></textarea>
document.getElementById("createFile").addEventListener("click", createFile); document.getElementById("writeFile").addEventListener("click", writeFile); document.getElementById("readFile").addEventListener("click", readFile); document.getElementById("removeFile").addEventListener("click", removeFile);
該檔案將在裝置上的應用程式的根檔案夾中建立。為了能夠存取根檔案夾你需要提供給超級使用者存取檔案夾。在我們的例子路徑根目錄檔案夾是 \data\data\com.yiibai.hello\cache。當前此檔案夾為空。
現在讓我們新增的函式來建立log.txt檔案。我們將編寫程式碼在index.js。我們首先請求檔案系統。此方法使用四個引數。型別可以是WINDOW.TEMPORARY或WINDOW.PERSISTENT,大小以位元組值,需要儲存(在本範例中是5MB)。
function createFile() { var type = window.TEMPORARY; var size = 5*1024*1024; window.requestFileSystem(type, size, successCallback, errorCallback) function successCallback(fs) { fs.root.getFile('log.txt', {create: true, exclusive: true}, function(fileEntry) { alert('File creation successfull!') }, errorCallback); } function errorCallback(error) { alert("ERROR: " + error.code) } }
我們要做的下一件事就是寫一些文字到檔案中。我們將再次請求的檔案系統,然後建立檔案寫入器寫入,我們分配存有 Lorem Ipsum 文字給 blob 變數。
function writeFile() { var type = window.TEMPORARY; var size = 5*1024*1024; window.requestFileSystem(type, size, successCallback, errorCallback) function successCallback(fs) { fs.root.getFile('log.txt', {create: true}, function(fileEntry) { fileEntry.createWriter(function(fileWriter) { fileWriter.onwriteend = function(e) { alert('Write completed.'); }; fileWriter.onerror = function(e) { alert('Write failed: ' + e.toString()); }; var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'}); fileWriter.write(blob); }, errorCallback); }, errorCallback); } function errorCallback(error) { alert("ERROR: " + error.code) } }
在這一步中,我們將讀取 log.txt 檔案內容並在 textarea 元素顯示。首先,我們請求的檔案系統,並得到該檔案物件,那麼正在建立讀取器。當讀寫器被載入,我們將返回值指定到 textarea。
function readFile() { var type = window.TEMPORARY; var size = 5*1024*1024; window.requestFileSystem(type, size, successCallback, errorCallback) function successCallback(fs) { fs.root.getFile('log.txt', {}, function(fileEntry) { fileEntry.file(function(file) { var reader = new FileReader(); reader.onloadend = function(e) { var txtArea = document.getElementById('textarea'); txtArea.value = this.result; }; reader.readAsText(file); }, errorCallback); }, errorCallback); } function errorCallback(error) { alert("ERROR: " + error.code) } }
function removeFile() { var type = window.TEMPORARY; var size = 5*1024*1024; window.requestFileSystem(type, size, successCallback, errorCallback) function successCallback(fs) { fs.root.getFile('log.txt', {create: false}, function(fileEntry) { fileEntry.remove(function() { alert('File removed.'); }, errorCallback); }, errorCallback); } function errorCallback(error) { alert("ERROR: " + error.code) } }