文章:王栋(北京中心)
排版:suny
场景描述
最近项目中有一个需要把网络文件下载下来保存到本地,然后对下载的文件进行读取,待文件不再使用后把文件进行删除的需求。当然也类似的需求还有很多,比如把小程序中的临时图片/文件永久保存下来等等,这些都是对文件操作的典型场景。
常见问题
在以上场景的实现过程中可能会遇到各式各样的问题,以下是比较常见的几个:
- 不清楚文件应该保存到哪个目录下。
- fail permission denied 文件权限问题。
使用同步函数不清楚怎么获取执行结果。
API提炼
提到文件操作我们会自然而然地想到了API中的FileSystemManager相关的API,我这里用到的函数有以下几个:
下载函数:异步函数:wx.downloadFile(Object object)
同步函数:FileSystemManager.access(Object object)
FileSystemManager.mkdir(Object object)
FileSystemManager.accessSync(string path)
FileSystemManager.mkdirSync(string dirPath, boolean recursive)
我对同样的业务逻辑分别分别尝试了异步和同步的两种不同的方案,下面我们用一个最简单的下载保存到本地的案例来切入正题。
案例实践
一、获取正确的文件目录路径
当然在保存文件之前我们先要解决一个小问题,那就是我们要保存到哪里?也就是我们自定义的目录。这里我们简单命名其为//自定义缓存文件根路