[Flutter]文件写报错 `FileSystemException: Cannot open file`

问题描述

Flutter尝试assets中文件复制到设备本地,但报错:

FileSystemException: Cannot open file, path = 
'/data/user/0/nz.co.webtools.sportzmind/app_flutter/audio/intro.mp3' (OS Error: No such file or directory, errno = 2)

代码:

final audioFile = await rootBundle.load('assets/audio/intro.mp3');
final dir = await getApplicationDocumentsDirectory();
File file = File('${dir.path}/audio/intro.mp3');

await file.writeAsBytes(audioFile.buffer.asUint8List());
url = file.path;

问题原因:

在创建文件的时候,加了一层路径audo导致报错, ${dir.path}/audio/intro.mp3

解决方案

  1. 判断文件夹是否存在,如果不存在,先建文件夹。
  2. 直接在系统 ApplicationDocumentsDirectory 下创建文件。 ‘${dir.path}/intro.mp3’

总结

创建文件时候如果存在多级文件结构,要判断是否文件夹是否存在

    原文作者:Tsun424
    原文地址: https://www.jianshu.com/p/2e78079ab9e1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞