flutter - Flutter如何在资产文件夹中指定文件路径
问题描述
我在资产文件夹中有一个声音文件,我可以使用如下代码检查它是否存在:
if (FileSystemEntity.typeSync(
'/Users/admin/Library/Developer/CoreSimulator/Devices/AC8BED2E-4EF1-4777-A399-EBD52E38B5C7/data/Containers/Data/Application/1390EE2C-A5D8-46E0-A414-AAC2B83CD20C/Library/Caches/sounds/3/unbeaten.m4a') !=
FileSystemEntityType.notFound) {
print('file is found');
} else {
print('not found');
}
如您所见,我需要使用绝对路径。有没有办法使用类似“assets/sounds/3/unbeaten.m4a”的路径检查文件是否在资产文件夹中,而无需指定整个路径?
解决方案
正如@frank06 所提到的,通过使用path_provider,我可以使用以下代码检查文件是否在资产文件夹中。但这仅适用于 iOS,我仍在尝试为 Android 寻找解决方案。注意需要为 iOS 添加 /Library 和 /Caches。对于Android,我似乎看不到与iOS不同的路径。
如果有人可以为我提供一些有关 Android 的信息,我将不胜感激。appDir 在 Android 上看起来像这样 - /data/user/0/com.learnchn.alsospeak/app_flutter/
directory = await getApplicationDocumentsDirectory();
var parent = directory.parent;
var directoryPath = directory.path;
var parentPath = parent.path;
String testString = 'sounds/3/unbeaten.m4a';
parentPath = parentPath + '/Library' '/Caches/' '$testString';
推荐阅读
- macos - 未使用 macOS 通知服务扩展
- python - 有什么方法可以让我在一个标签的不同输入框中输入不同的值吗?
- javascript - 缺少滚动条或缺少限制
- reactjs - 如何在 ReactJS 前端正确转换日期
- c# - 如何在 C# MVC 中过滤下拉列表
- ios - UISegmentedControl iOS 13 清除颜色
- python-2.7 - 使用 BeautifulSoup 抓取时,我得到一个 0kb 的 TXT 文件
- python - Plotly express 不在 jupyter lab 中渲染
- ios - VLC ios中调用的主要故事板是什么?
- hibernate - EntityJavaDescriptorImpl 不能转换为 org.hibernate.type.descriptor.java.spi.EmbeddableJavaDescriptor