【微信小程序】saveFile:fail tempFilePath file not exist

开发微信小程序尝试保存文件时,会提示saveFile:fail tempFilePath file not exist错误,是什么问题呢,接下来带你如何分析和解决问题

1. 定位问题

首先,看一下代码怎么写得,如下所示

wx.saveFile({
	tempFilePath:tempFilePath,
	success: (res)=>{
		console.log('writeFile '+tempFilePath, res);
	}
})

或者,因wx.saveFile()将会弃用,就这样写得

wx.getFileSystemManager().saveFile({
	tempFilePath:tempFilePath,
	filePath:wx.env.USER_DATA_PATH+'/note',
	success:(res)=>{
		console.log('writeFile '+tempFilePath, res);
	}
})

打印一下tempFilePath的值,看它是啥,如下图所示,发现http://usr...,不是临时文件的保存路径

writeFile http://usr/note_1669000774894.txt

2. 解决问题

错误原因看到了,来分析一下,看看官方文档,保存的文件权限,如下所示,其中

接口、组件说明
http://tmp本地临时文件
http://usr本地用户文件

🔈报的错误应该是这样
如果tempFilePathhttp://usr...,这个就会提示saveFile:fail tempFilePath file not exist错误,不是临时文件的路径,必须是http://tmp临时文件的路径应该就不会报错了。

是否也想过问题,不能保存到内存卡根目录下吗,目前来看,是不可以的,没得办法😔。
可是,保存到http://usr用户文件的路径中,那之后怎么读取过来呢,参考如下代码,调试日志打印出来的就是之前保存的用户文件列表了,通过这个方式就能获取本地文件

wx.getFileSystemManager().readdir({
	dirPath:wx.env.USER_DATA_PATH,
	success:(res)=>{
		console.log('dir',res)
	}
})

如果要想在电脑上找到存放的用户文件,就点击在微信开发工具上的详情按钮,如下图所示,然后再点击文件系统对应的 蓝 色 的 路 径 \color{#00f}{蓝色的路径} 就可打开目录查看
在这里插入图片描述

💡 有一点可以放心,官方文档的清理策略有说了,只要小程序不被删除,那存放在用户文件的路径下文件是不会突然消失的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TA远方

谢谢!收到你的爱╮(╯▽╰)╭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值