# 小程序文件管理
# 1. 保存文件至当前小程序临时目录
SDK支持原生保存文件到小程序的缓存目录,然后返回文件的本地路径,以供小程序使用。
/**
* 保存文件到小程序的缓存路径
* @param appId 小程序 ID
* @param apiServer API 服务器地址
* @param fileData 文件的二进制数据
* @param fileName 文件名称,需要保证文件名唯一,否则可能会覆盖
* @return 文件的本地路径,例如:finfile://tmp/b118e2e5e2618d4d8bbbb7b0a3ad806a.jpg
*/
async saveFile(appId: string, apiServer: string, fileData: ArrayBuffer, fileName: string): Promise<IFinApplet.IFinAppResult<string>>;
# 2. 生成finfile协议路径
小程序中的finfile协议路径有三种:finfile://tmp/ 、finfile://store/、finfile://usr/。tmp类型路径是保存在小程序运行目录下,下次冷启动小程序时会被清除;store路径会持久化保存,当删除小程序时才会删除;usr类型路径也会持久化保存,但是只可以自定义文件名以及保存目录。
该函数,可以传入文件名和要保存的路径类型,生成一个finfile协议路径,以供小程序中使用。但是文件不一定存在,要结合其他api,往对应文件内协议内容。
/**
* 生成finfile协议路径
* @param filePath 文件路径
* @param pathType Finfile的目录类型,详情参考FATFinFilePathType
* @return finfile协议的路径,例如:finfile://tmp/b118e2e5e2618d4d8bbbb7b0a3ad806a.jpg
*/
generateFinFilePath(filePath: string, pathType: EFinFilePathType): string;
示例代码:
const finfilepath = client.generateFinFilePath('abc.txt',EFinFilePathType.tmp)
// 返回值:finfile://tmp/b118e2e5e2618d4d8bbbb7b0a3ad806a.txt
# 3. finfile路径转换为绝对路径
在有些场景下,我们拿到小程序的finfile文件路径,需要转换成沙盒路径,这时可以用该方法转换为沙盒路径。
/**
* 根据路径获取沙盒路径
* @param appId 小程序 ID
* @param apiServer API 服务器地址
* @param schemaFilePath 文件路径
*/
async absolutePathWithPath(appId: string, apiServer: string, schemaFilePath: string): Promise<IFinApplet.IFinAppResult<string>>;
示例代码:
const appId = 'appId'
const apiServer = 'apiServer'
const schemaFilePath = 'finfile://tmp/b118e2e5e2618d4d8bbbb7b0a3ad806a.txt'
const finfilepath = await client.absolutePathWithPath(appId,apiServer,schemaFilePath)
# 4.获取小程序临时路径所在的沙盒路径
在有些场景下,想访问或者操作小程序的临时路径里的文件,可以通过该方法转成沙盒路径
/**
* 获取小程序临时路径
* @param appId 小程序 ID
* @param apiServer API 服务器地址
*/
async getAppletTempPath(appId: string, apiServer: string): Promise<IFinApplet.IFinAppResult<string>>;