Cordova文件模块

本文介绍了Cordova中如何进行文件操作,包括安装、添加事件、创建、写入、读取和删除文件。所有操作都在deviceReady事件中执行,提供了一个基础的文件管理实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 安装
cordova plugin add cordova-plugin-file
2.添加按钮
<button id = "createFile">创建文件</button>
<button id = "writeFile">写入文件</button>
<button id = "readFile">读取文件</button>
<button id = "removeFile">删除文件</button>
<textarea id = "textarea"></textarea>
3. 添加事件
事件都添加到deviceReady事件中
3.1 创建文件
document.getElementById("createFile").addEventListener("click", createFile);
function createFile() {
    var type = window.TEMPORARY; // TEMPORARY暂时的 PERSISTENT持久的
    var size = 5*1024*1024;      // 文件大小
    // 打开文件系统
    // 四个参数(存储类型,存储大小,成功时回调,失败时回调)
    window.requestFileSystem(type, size, successCallback, errorCallback)
    // 成功的回调函数的参数是一个 FileSystem对象
    function successCallback(fs) {
       console.log(fs);
       // fs.root是一个DirectoryEntry对象
       // fs.root.getFile(文件名,配置参数,成功回调函数,失败回调函数)
       // 参数 create:true true则是创建文件 false不创建  exclusive:true时 文件存在则报错 false则不会
       // 成功时的回调函数的参数为fileEntry对象
       fs.root.getFile('log.txt', {create: true, exclusive: false}, function(fileEntry) {
           // fileEntry中的属性
           // fullPath isDirectory isFile name nativeURL
           // 方法 
           // createWriter(successCallback,failCallback) 写入文件使用
           // file(successCallback,failCallback)         读取文件使用
          alert('创建文件成功')
       }, errorCallback);
    }
 }
3.2 写入文件
document.getElementById("writeFile").addEventListener("click", writeFile);
 function writeFile() {
    var type = window.TEMPORARY; // 同3.1中一致
    var size = 5*1024*1024;      // 同3.1中一致
    // 打开文件系统
    // 四个参数(存储类型,存储大小,成功时回调,失败时回调)
    window.requestFileSystem(type, size, successCallback, errorCallback)
    // 打开成功时的回调函数
    function successCallback(fs) {
       // fileSystem对象
       console.log(fs.root)
       // create为true时  文件不存在会创建文件
       fs.root.getFile('log.txt', {create: true}, function(fileEntry) {
          // fileEntry.createWriter用于写入文件 接收fileWriter对象
          fileEntry.createWriter(function(fileWriter) {
             console.log(fileWriter)
             // fileWriter中的属性
             // error fileName length(字节长度) localUrl
             // 事件: onerror(e) onwriteend(e)
             // 写入异常时触发
             fileWriter.onwriteend = function(e) {
                alert('成功完成');
             };
             // 写入完成时触发
             fileWriter.onerror = function(e) {
                alert('写入失败: ' + e.toString());
             };
             // 写入内容
             fileWriter.write('写入的内容');
          }, errorCallback);
       }, errorCallback);
    } 
 }
3.3 读取文件
function readFile() {
    var type = window.TEMPORARY;  // 同上
    var size = 5*1024*1024;       // 同上
    window.requestFileSystem(type, size, successCallback, errorCallback)
    function successCallback(fs) {
       // 读取文件时 create不设置或者设置为false就好
       fs.root.getFile('log.txt', {}, function(fileEntry) {
          // fileEntry.file用于读取文件
          fileEntry.file(function(file) {
             // file对象
             // 属性:size大小 lastModified:最后修改时间  name:文件名
             // start:读取的起始位置 end:读取的结束位置 type:类型 如text/plain;  
             // localUrl:本地Url
             console.log(file);
			 // 新建一个FileReader对象 用于读取文件
             var reader = new FileReader();
             // 将file以text形式读取出来
             // readAsArrayBuffer     以ArrayBuffer的形式读出来
             // readAsBinaryString    以二进制的形式读出来
             // readAsDataURL		  以数据Url的形式读出来
             // readAsText			  以文本的形式读出来
             reader.readAsText(file);
             // 方法 onerror onload onloadend onloadstart 见名知意
             // 读取结束触发 其中的this为FileReader对象 result为读取的内容
             reader.onloadend = function(e) {
                var txtArea = document.getElementById('textarea');
                console.log(this)
                txtArea.value = this.result;
             };
          }, errorCallback);
       }, errorCallback);
    }  
 }	
3.4 删除文件
document.getElementById("removeFile").addEventListener("click", removeFile);
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) {
         console.log(fileEntry);
         // 删除文件  这个方式是原型链上的 参数为(成功回调,失败回调)
         fileEntry.remove(function() {
            alert('文件删除成功');
         }, errorCallback);
      }, errorCallback);
   }  
}	
这只是一种用法,能做到简单的创建、读写和删除,还有很多内容可以学习,之后学习了再做笔记。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值