问题描述
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
解决方案
- 判断文件夹是否存在,如果不存在,先建文件夹。
- 直接在系统
ApplicationDocumentsDirectory
下创建文件。 ‘${dir.path}/intro.mp3’
总结
创建文件时候如果存在多级文件结构,要判断是否文件夹是否存在