Cordove File實(shí)例Demo(二)
window.resolveLocalFileSystemURL(folder,successCB,errorCB)
獲取系統(tǒng)目錄/文件的操作實(shí)例FileEntry,DirectoryEntry
folder:路徑file:///協(xié)議的目錄位置或文件位置,可以自己拼接,可以使用cordova.file中定義的路徑,示例:file:///storage/emulated/0/Android/data/
cordova中FileEntry多了個(gè)nativeURL,為當(dāng)前系統(tǒng)中的位置。
使用實(shí)例:
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function (dirEntry) { console.log('file system open: ' + dirEntry.name); var isAppend = true; createFile(dirEntry, "fileToAppend.txt", isAppend); }, onErrorLoadFs); 1.讀取系統(tǒng)目錄內(nèi)容:
//獲取當(dāng)前程序存儲(chǔ)目錄$scope.show3 = function () { $scope.folder = cordova.file.applicationStorageDirectory; console.info(cordova.file.applicationStorageDirectory); console.info($scope.folder);}//外部存儲(chǔ)目錄$scope.show4 = function () { $scope.folder = cordova.file.externalApplicationStorageDirectory;}//獲取系統(tǒng),指定文件夾內(nèi)容$scope.show2 = function () { console.info($scope.folder); //顯示根目錄內(nèi)容 window.resolveLocalFileSystemURI($scope.folder, function (dirEntry) { //顯示根目錄下的內(nèi)容 var dirReader = dirEntry.createReader(); var entries = []; var readEntries = function () { //返回FileEntry數(shù)組 dirReader.readEntries(function (results) { if (!results.length) { showEntries(entries.sort()); } else { entries = entries.concat(toArray(results)); readEntries(); } }, errorHandler); } readEntries(); }); function errorHandler(err) { console.info(err); } function toArray(list) { return Array.PRototype.slice.call(list || [], 0); } //顯示讀取結(jié)果 function showEntries(entries) { console.info(entries); }}2.下載圖片到程序的系統(tǒng)目錄$scope.download1 = function () { //如果目錄不存在異常:Wrong type for parameter "uri" of resolveLocalFileSystemURI: Expected String, but got Undefined. window.resolveLocalFileSystemURI($scope.folder, function (dirEntry) { getSampleFile(dirEntry); }, errorHandle); //下載圖片到程序 function getSampleFile(dirEntry) { console.info(dirEntry); //1.請(qǐng)求png 圖片 var xhr = new xmlHttpRequest(); xhr.open('GET', 'http://cordova.apache.org/static/img/cordova_bot.png', true); xhr.responseType = 'blob'; xhr.onload = function () { if (this.status == 200) { var blob = new Blob([this.response], { type: 'image/png' }); //保存 saveFile(dirEntry, blob, 'downloadImage.png'); } } xhr.send(); } //保存到本地 function saveFile(dirEntry, blob, filename) { console.info(blob); //創(chuàng)建文件 dirEntry.getFile(filename, { create: true }, function (fileEntry) { fileEntry.createWriter(function (fileWriter) { fileWriter.onwriteend = function () { console.log('寫入文件成功'); if (blob.type == 'image/png') { readBinaryFile(fileEntry); } else { console.error(blob); } } fileWriter.onerror = function (err) { console.error('寫入文件失敗:' + err.toString()); } fileWriter.write(blob); }); }, errorHandle); } //讀取二進(jìn)制文件 function readBinaryFile(fileEntry) { fileEntry.file(function (file) { var reader = new FileReader(); reader.onloadend = function () { //顯示圖片文件 console.info(fileEntry.nativeURL); var blob = new Blob([new Uint8Array(reader.result)], { type: 'image/png' }); $scope.imgOne = window.URL.createObjectURL(blob); $scope.$apply(); } reader.readAsArrayBuffer(file); }, errorHandle); //直接顯示圖片 $scope.imgTwo = fileEntry.toURL(); $scope.$apply(); }}更多:cordova-plugin-file 文件操作整理(二)
cordova-plugin-file 文件操作整理(一)
cordova-plugin-vibration 設(shè)備震動(dòng)整理
http://www.hangge.com/blog/cache/detail_1179.html
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注