此前,在网上寻找了很多关于uniapp中得到本地系统目录文件的方式,最终只能选择H5+的方式,调用官方的plus.io,就可以读取到指定项目目录下的文件;因为其他方式,比如uni.chooseFile,以及const fs = uni.getFileSystemManager();
const filePath = ${uni.env.USER_DATA_PATH}/example.txt
;都不能得到有效的数据返回,fs显示对象是空的,uni.env.USER_DATA_PATH显示未定义,给予权限了也没用;
一:从Plus.io入手,才是适合android,ios获得本地系统目录文件
二.把文件放到项目的static下:如“static/RTXXX_ota-TEST-V19.zip”
三.代码实现:
<template>
<view>
<!-- Content here -->
<view v-if="fileInfo">
<p>文件名称:{{ fileInfo.name }}</p>
<p>文件大小:{{ fileInfo.size }} 字节</p>
</view>
</view>
</template>
<script>
export default {
data() {
return {
fileInfo: null, // 存储文件信息
}
},
onLoad() {
//apps/HBuilder/
const documentsPath = plus.io.convertLocalFileSystemURL('static/RTXXX_ota-TEST-V19.zip'); // HBuilder 提供的沙箱路径
console.log("documentsPath:", documentsPath);
plus.io.resolveLocalFileSystemURL(documentsPath, (entry) => {
entry.file((file) => {
console.log(file);
this.fileInfo = {
name: file.name,
size: file.size
};
});
});
},
methods: {
}
}
</script>
四,最后得到的file数据:
此时就可以了!