Capacitor FileSystem写入文件后读取提示不存在问题排查
Capacitor FileSystem 写入后读取提示文件不存在故障排查
常见故障原因
- 参数使用错误:
readFile方法的path入参仅接受相对于存储目录的相对路径,不接受writeFile返回的完整uri字符串。你的代码中将resp.uri直接赋值给path,插件会将整个uri当作相对路径在默认目录下检索,自然无法匹配到实际存储的文件。 - 存储目录不匹配:
readFile方法未显式传入directory参数时,会使用插件默认目录,和你写入时指定的FilesystemDirectory.Data不一致,就算路径正确也找不到文件。 - 编码配置错误:如果写入的是非文本类二进制文件(图片、音视频、压缩包等),指定
UTF8编码会导致base64格式的二进制数据被转码损坏,写入的文件本身无效无法正常读取。 - 路径特殊字符未转义:如果文件名包含中文、空格、特殊符号时未做转义处理,写入和读取阶段的路径解析结果不一致也会触发该报错。
修正后代码示例
Filesystem.writeFile({ path: name, data: base64, directory: FilesystemDirectory.Data, // 若存储的是二进制文件,请删除encoding配置项 encoding: FilesystemEncoding.UTF8, recursive: true }).then((resp: FileWriteResult) => { // 读取时传入和写入一致的相对路径 + 存储目录 return Filesystem.readFile({ path: name, directory: FilesystemDirectory.Data, encoding: FilesystemEncoding.UTF8 }) }).then(resp => { console.log(resp); }).catch(err => console.log(err));
内容的提问来源于stack exchange,提问作者Andrison Sánche
相关产品推荐
相关产品推荐

