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>

相关推荐
长风清留扬16 分钟前
小程序毕业设计-音乐播放器+源码(可播放)下载即用
javascript·小程序·毕业设计·课程设计·毕设·音乐播放器
web1478621072329 分钟前
C# .Net Web 路由相关配置
前端·c#·.net
m0_7482478030 分钟前
Flutter Intl包使用指南:实现国际化和本地化
前端·javascript·flutter
飞的肖34 分钟前
前端使用 Element Plus架构vue3.0实现图片拖拉拽,后等比压缩,上传到Spring Boot后端
前端·spring boot·架构
青灯文案141 分钟前
前端 HTTP 请求由 Nginx 反向代理和 API 网关到后端服务的流程
前端·nginx·http
m0_748254881 小时前
DataX3.0+DataX-Web部署分布式可视化ETL系统
前端·分布式·etl
ZJ_.1 小时前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
GIS开发特训营1 小时前
Vue零基础教程|从前端框架到GIS开发系列课程(七)响应式系统介绍
前端·vue.js·前端框架·gis开发·webgis·三维gis
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
学代码的小前端1 小时前
0基础学前端-----CSS DAY9
前端·css