uniapp 读,写,删本地文件

<template>

<view>

<view class="p-2">

<view class="bg-primary p-2 rounded flex align-center justify-center" style="color: #fff;" hover-class="bg-hover-primary" @click="dataset">写入{{count}} s</view>

</view>

<view class="p-2">

<view class="bg-primary p-2 rounded flex align-center justify-center" style="color: #fff;" hover-class="bg-hover-primary" @click="read">读取</view>

</view>

<view class="p-2">

<view class="bg-primary p-2 rounded flex align-center justify-center" style="color: #fff;" hover-class="bg-hover-primary" @click="deletes">删除</view>

</view>

</view>

</template>

<script>

import { mapState } from 'vuex'

export default {

data() {

return {

count: '',

timer: null,

resultdata:\[\]

}

},

computed: {

...mapState({

token:state=>{

return state.user ? state.user.token : null

},

user:state=>{

return state.user ? state.user : null

}

}),

},

methods: {

read(){

//console.log("读取")

plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, (fs)=> {

// fs.root是根目录操作对象DirectoryEntry

let a = fs.root.toURL() //通过此方法我们可获取存储在app私用环境下的相对跟路径。

console.log(a + '/box/' + 'test.json')

fs.root.getFile(a + '/box/' + 'test.json', {

create: false

}, (fileEntry)=> {

// 文件在手机中的路径

// console.log(fileEntry.fullPath)

fileEntry.file((file)=> {

var fileReader = new plus.io.FileReader();

fileReader.readAsText(file, 'utf-8');

fileReader.onloadend =(evt)=> {

var news = \[\];

var result = evt.target.result;

console.log(result)

if (result != ""){

this.resultdata=JSON.parse(result)

}

}

});

});

})

},

wetir(){

//console.log("写入")

plus.io.requestFileSystem(

plus.io.PUBLIC_DOCUMENTS, // 文件系统中的根目录

fs => {

let a = fs.root.toURL() //通过此方法我们可获取存储在app私用环境下的相对跟路径。

// 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象

fs.root.getFile(a + '/box/' + 'test.json', {

create: true // 文件不存在则创建

}, fileEntry => {

// 文件在手机中的路径

// console.log(fileEntry.fullPath)

fileEntry.createWriter(writer => {

// 写入文件成功完成的回调函数

writer.onwrite = e => {

console.log("写入数据成功");

};

//console.log(this.resultdata)

// 写入数据

writer.write(JSON.stringify(this.resultdata));

uni.hideLoading()

})

}, e => {

console.log("getFile failed: " + e.message);

});

},

e => {

console.log(e.message);

}

);

},

deletes(){

//console.log("删除文件")

plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, (fs)=> {

// fs.root是根目录操作对象DirectoryEntry

let a = fs.root.toURL();

//删除目录不能指向文件名 只能指向文件夹

console.log(a+'/box/')

plus.io.resolveLocalFileSystemURL(a+'/box/' ,(entry)=> {

//读取这个目录对象

var directoryReader = entry.createReader();

//读取这个目录下的所有文件

directoryReader.readEntries((entries)=> {

console.log(entries.length)

//如果有才操作

console.log(entries, 'entries')

if (entries.length > 0) {

//删除目录将会删除其下的所有文件及子目录 不能删除根目录,如果操作删除根目录

//将会删除目录下的文件及子目录,不会删除根目录自身。 删除目录成功通过succesCB

//回调返回,失败则通过errorCB返回。

entry.removeRecursively((entry)=> {

console.log('删除成功回调')

//删除成功回调

this.resultdata=\[\]

}, (e) =>{

//错误信息

console.log(e.message + ' ?!')

})

}

})

})

})

},

getCode(){

const TIME_COUNT = 10; //限定时间

if (!this.timer) {

this.count = TIME_COUNT;

this.timer = setInterval(() => {

if (this.count > 0 && this.count <= TIME_COUNT) {

this.count--; //全局的数据改变 倒计时

} else {

clearInterval(this.timer);

this.timer = null; //清除定时器

//需要执行的代码

return this.$H.get(`/url`,{

token:true

}).then(res=>{

this.resultdata=res

console.log(res)

this.wetir()

}).catch(err=>{

uni.hideLoading()

})

}

}, 1000)

}

} ,

dataset(){

//避免用户重复点击

this.getCode()

uni.showLoading({

title: '同步中...'

});

},

}

}

</script>

相关推荐
To_OC7 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
不好听6138 小时前
从一行 JSX 到屏幕像素:前端开发者必须懂的浏览器渲染管线
前端
恒拓高科WorkPlus8 小时前
企业级内网即时通讯建设模型:BeeWorks内网IM四层架构
前端
前端小李子9 小时前
前端环境变量裸奔?我用 EnvShield 给它穿了件防弹衣
前端
youtootech9 小时前
HarmonyOS《柚兔学伴》项目实战25-我的页面、Web 嵌入与项目总结
前端·华为·harmonyos
小林ixn9 小时前
从零到一理解 React 父子组件通信:手写一个 Todo 应用带你彻底搞懂单向数据流
前端·javascript·react.js
三声三视10 小时前
uni-app 鸿蒙端传参变成 [object Object]?顺着源码追到 ArkTS router 底层才搞明白
人工智能·ai·uni-app·aigc·ai编程·harmonyos
醇氧10 小时前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
窝子面11 小时前
手搓最简前后端协作-node
javascript·数据库